python-3.x - Python 诅咒 - 调整大小/滚动屏幕
问题描述
我正在创建一个基于终端的 RPG 游戏。最近,由于 CMD 的问题(刷新时闪烁和其他问题),我决定转向 curses。
我在长时间的对话中遇到了屏幕容量问题。在 CMD 中,屏幕只是自动滚动 - 这就是我正在寻找的。
我的方法如下。我有许多包含根据功能分组的类和函数的脚本(例如与棋盘、播放器、NPC、通用实用程序函数脚本等有关的脚本)。所有这些都需要访问一些共享变量和对象;我将它们分组在一个 shared.py 脚本中,并将剩余的脚本订阅到它;该脚本中与显示机制相关的部分如下所示:
shared.py
import curses
sc = curses.initscr()
scr = curses.newpad(1000,1000)
scr.scrollok
为了提神,我使用:
shared.scr.refresh(0, 0, 0, 0, shared.sc.getmaxyx()[0] - 1, shared.sc.getmaxyx()[1] - 1)
但目前,当显示屏填满时,我相信新内容仍然被转储到垫子中,但在显示屏上看不到。我可能会想出一种方法来改变 refresh() 的参数,以便显示的底线始终与添加到 pad 的最新行一致,但这仍然只能让我看到一个屏幕的可见性。
是否可以以这样的方式将垫的内容打印到窗口中,以便保留旧内容并通过向上滚动访问?实际上,我希望能够继续向我的显示器添加线条,当它填满时,我希望生成更多的显示区域,并且不再适合显示器的旧内容通过显示器的顶部边缘移出(但它仍然可以通过滚动访问)。
解决方案
推荐阅读
- asp.net - 500 - 在网络解决方案 plesk 上发布 asp.net Web App 时出现内部服务器错误
- python - ssh 子系统上的 termios ioctl 错误
- asp.net-mvc - 无法获取/消息
- ios - 在我的扩展代码中调用数组时使用未解决的标识符错误
- java - 如何在 Application ScopedBean 中刷新数据库数据?
- java - 使用 Guice 对同一接口的多个实现进行依赖注入
- reactjs - 使用反应状态更新输入,反之亦然
- python - 如何在python中展平RDD?
- angular - Ionic [clear] property not working for a button
- vue.js - Vue / Apollo:如何更新新的订阅消息?