有没有办法检测用户正在移动的pygame显示窗口?

问题描述

我正在使用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)