首页 > 解决方案 > 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 的最新行一致,但这仍然只能让我看到一个屏幕的可见性。

是否可以以这样的方式将垫的内容打印到窗口中,以便保留旧内容并通过向上滚动访问?实际上,我希望能够继续向我的显示器添加线条,当它填满时,我希望生成更多的显示区域,并且不再适合显示器的旧内容通过显示器的顶部边缘移出(但它仍然可以通过滚动访问)。

标签: python-3.xscrollresizecurses

解决方案


推荐阅读