我试图理解为什么当我尝试退出游戏时我的程序失去响应。我做了一些测试,这是代码:
import pygame
import time
pygame.init()
run=True
pygame.display.set_caption("test")
win=pygame.display.set_mode((200,200))
while run==True:
pygame.time.delay(16)
keys=pygame.key.get_pressed()
#for event in pygame.event.get():
#if event.type == pygame.QUIT:
#run=False
win.fill((125,125,125))
if keys[pygame.K_q]:
run=False
pygame.display.update()
pygame.quit()
如果执行此代码 - 当用户按下“q”键时,Windows 无法正确退出程序。 如果删除注释符号 # 形成 14,15,16 字符串,所有将正常工作。按“q”键将正常退出程序。 只有一个问题 - 为什么???
pygame.event.get()
pygame.event.pump()
:
对于游戏的每一帧,您都需要对事件队列进行某种调用。这确保您的程序可以在内部与操作系统的其余部分进行交互。
如果您不处理事件,
pygame.key.get_pressed()
将停止工作。处理事件时,会在内部评估 pygame.key.get_pressed()
返回的键的状态。
至少你得打电话
pygame.event.pump()
:
while run==True:
pygame.time.delay(16)
pygame.event.pump()
keys=pygame.key.get_pressed()
if keys[pygame.K_q]:
run=False
win.fill((125,125,125))
pygame.display.update()