我读过类似的关于堆栈溢出的问题,但它们没有帮助。这是我的代码:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Hello World')
pygame.mouse.set_visible(1)
done = False
clock = pygame.time.Clock()
while not done:
clock.tick(60)
keyState = pygame.key.get_pressed()
if keyState[pygame.K_ESCAPE]:
print('\nGame Shuting Down!')
done = True
按escape
不会退出游戏或打印消息。这是虫子吗?如果我打印keyState[pygame.K_ESCAPE]的值,它总是零。
我可以建议改用事件que吗?这可能是个更好的主意:
问题是您没有处理pygame的事件队列。您应该在循环结束时简单地调用
pygame.event.pump()
,然后您的代码就可以正常工作了:来自docs(强调我的):
请注意,如果只在主循环中的任何地方调用
pygame.event.get()
,则不必执行此操作;如果不调用,则可能应该调用pygame.event.clear()
,这样事件队列就不会填满。做这样的事:
您不需要if语句上的
pygame.
,还应该调用pygame.display.flip()
,以便它正确显示窗口,然后您需要一个事件循环来退出程序相关问题 更多 >
编程相关推荐