gpt4 book ai didi

python 诅咒 tty 屏幕闪烁

转载 作者:太空狗 更新时间:2023-10-30 00:26:28 28 4
gpt4 key购买 nike

我正在编写一个 python curses 游戏 ( https://github.com/pankshok/xoinvader )。我发现了一个问题:在终端模拟器中它工作正常,但在 tty 屏幕闪烁。我尝试使用 curses.flash(),但情况变得更糟。

例如屏幕字段:

self.screen = curses.newwin(80, 24, 0, 0)

主循环:

def loop(self):
while True:
self.events()
self.update()
self.render()

呈现:(https://github.com/pankshok/xoinvader/blob/master/xoi.py#L175)

self.screen.clear()
#draw some characters
self.screen.refresh()
time.sleep(0.03)

sleep 函数中的恒定时间是暂时的,直到我编写 60 次渲染调用 Controller 。

如何正确实现render方法?

提前致谢,保罗。

最佳答案

不要调用clear 来清除屏幕,而是使用erase。使用 clear 设置一个标志,这样当您调用 refresh 时,它所做的第一件事就是清除终端屏幕。这就是导致终端屏幕闪烁的原因。用户看到旧屏幕,然后是一个完全空白的屏幕,然后是你的新屏幕。如果您使用 erase,那么它会将旧屏幕修改为看起来像新屏幕。

您可能仍会在慢速终端上看到一些奇怪的闪烁或其他伪像。尝试调用 screen.idcok(False)screen.idlok(False) 来阻止 curses 使用插入和删除操作来更新屏幕。

关于python 诅咒 tty 屏幕闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com