pygame为什么对我冻结?

时间:2018-06-20 09:52:53

标签: 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()

我只想要一个在Esc键上关闭的显示器。该代码有什么问题?

1 个答案:

答案 0 :(得分:5)

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

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

来自pygame.event.pump

  

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

     

如果您的程序通过其他pygame.event函数持续处理队列中的事件,则不需要此函数。

     

事件队列内部必须处理一些重要的事情。主窗口可能需要重新粉刷或响应系统。如果您对事件队列的调用时间过长,系统可能会认为您的程序已锁定。