问题描述
我正在使用Pygame编写游戏。当游戏窗口打开时,在游戏更改了屏幕上显示的内容之后,我目前只有程序调用pygame.display.update。将屏幕刷新限制为仅在必要时有效。我发现移动游戏窗口会导致屏幕损坏,这有一个副作用,即使程序本身不需要一个,它也要求程序强制刷新。
我的问题是是否存在pygame事件(我没有看到)或其他事件,可以用来迫使游戏在窗口移动后刷新屏幕。
解决方法
好的,我碰巧遇到了一个代码片段,该片段向控制台报告事件: http://www.poketcode.com/en/pygame/events/index.html
运行此命令很有用,因为我注意到每次将窗口部分移出屏幕时,pygame都会在窗口区域移回屏幕时触发VideoExpose事件。
因此,我在事件循环中添加了以下代码,效果很好!
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.VIDEOEXPOSE:
game.update_panels(force=True)
game.update_panels(force=False)