![是否可以在终端中滚动任意区域?](https://linux22.com/image/209012/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%BB%9A%E5%8A%A8%E4%BB%BB%E6%84%8F%E5%8C%BA%E5%9F%9F%EF%BC%9F.png)
我正在研究使用 SSH 连接来托管基于文本的实时多人游戏的可能性。用户能够输入“ssh mygame.com”并在终端中玩游戏会很方便,而不需要自定义客户端。
基于文本的游戏通常有一张在玩家下方移动的地图(并且可以随着玩家移动而滚动)。但发送数据来重绘玩家所采取的每一步的整个地图的成本会很高。如果地图可以通过一系列转义序列滚动,然后更新小部分(例如玩家位置、NPC 位置和地图的新可见部分),那么通过 SSH 发送会便宜得多。
我一直在阅读各种终端标准,此时我有点困惑。我的主要问题是,现代终端通常是否支持我所描述的垂直或水平滚动屏幕任何区域的功能?
看看这个网站,一般来说,他们似乎可能不会: https://terminalguide.namepad.de/seq/
我想我要问的是与此类似的内容(尚未广泛实施): http://www.sweger.com/ansiplus/EscSeqScroll.html
VT520 标准中似乎也支持滚动区域(搜索“滚动区域”): http://web.mit.edu/dosathena/doc/www/ek-vt520-rm.pdf