为什么pygame会冻结我?

Kai*_*sam 4 python pygame

这是我的代码

import pygame
import sys
pygame.init()
from pygame import *
from sys import *

pygame.display.set_mode((500, 500))
pygame.time.Clock()

runGame = True

while runGame == True:

    currentKeys = pygame.key.get_pressed()

    if currentKeys[K_ESCAPE] == True:
        runGame = False

    pygame.time.Clock().tick(60)

pygame.quit()
sys.quit()
Run Code Online (Sandbox Code Playgroud)

我只想要一个在Esc按键上关闭的显示器.这段代码出了什么问题?

slo*_*oth 5

可能事件队列已填满,因此窗口不会对来自操作系统/窗口管理器的事件做出反应.

确保在游戏循环中调用pygame.event.get()(或pygame.event.pump).

来自pygame.event.pump:

对于游戏的每个帧,您需要对事件队列进行某种调用.这可确保您的程序可以在内部与操作系统的其余部分进行交互.如果您没有在游戏中使用其他事件函数,则应调用pygame.event.pump()以允许pygame处理内部操作.

如果程序通过其他pygame.event函数一致地处理队列上的事件,则不需要此函数.

必须在事件队列内部处理重要事项.主窗口可能需要重新绘制或响应系统.如果您未能长时间调用事件队列,系统可能会判断您的程序已被锁定.