从pygame中的程序退出

红色潜水艇

我试图了解为什么我尝试退出游戏时程序失去响应。我进行一些测试,这是代码:

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”键将正常退出程序。只有一个问题-为什么?

拉比德76

您必须处理应用程序循环中的事件。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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章