我试图理解为什么我的程序是loosing响应当我试图退出游戏.我做了一些测试,这里是代码:
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无法正确退出程序。如果删除注解符号# form 14,15,16字符串,所有都将正常工作。点击“q”键将正常退出程序。只有一个问题-为什么?
1条答案
按热度按时间fnatzsnv1#
你必须在应用程序循环中处理事件。分别参见
pygame.event.get()
pygame.event.pump()
:对于游戏的每一帧,你都需要对事件队列进行某种调用。这确保了你的程序可以在内部与操作系统的其他部分进行交互。
如果你不处理这些事件,
pygame.key.get_pressed()
将停止工作。当处理这些事件时,pygame.key.get_pressed()
返回的键的状态将在内部进行评估。至少你必须调用
pygame.event.pump()
:字符串