我试图了解为什么我尝试退出游戏时程序失去响应。我进行一些测试,这是代码:
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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句