Python 使用keydown事件关闭pygame窗口,标志不起作用

Python 使用keydown事件关闭pygame窗口,标志不起作用,python,pygame,Python,Pygame,我试图通过按“q”键来关闭pygame窗口。没有错误,但由于某些原因它不起作用。请帮忙 导入pygame screen=pygame.display.set_模式((0,0)) screen\u rect=screen.get\u rect() pygame.init() flag=True 船舶等级: 定义初始化(自): self.image=pygame.image.load('images/ship.bmp') self.rect=self.image.get_rect() self.re

我试图通过按“q”键来关闭pygame窗口。没有错误,但由于某些原因它不起作用。请帮忙

导入pygame
screen=pygame.display.set_模式((0,0))
screen\u rect=screen.get\u rect()
pygame.init()
flag=True
船舶等级:
定义初始化(自):
self.image=pygame.image.load('images/ship.bmp')
self.rect=self.image.get_rect()
self.rect.center=screen_rect.center
def blitme(自):
blit(self.image,self.rect)
def按键关闭(事件):
如果event.key==pygame.K_q:
flag=False
ship=ship()
而国旗:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
flag=False
elif event.type==pygame.KEYDOWN:
按键关闭(事件)
屏幕填充((0,0128))
飞船。blitme()
pygame.display.flip()

游戏循环在
flag=True
时工作。单击“窗口退出”按钮时,关闭窗口会起作用,但按q键不会产生任何结果。

如果要在函数中写入全局命名空间中的变量,则必须使用将变量解释为全局变量:

def按键关闭(事件):
全球旗帜
如果event.key==pygame.K_q:
flag=False

如果未将变量声明为全局变量,则会在的局部范围内生成一个局部变量(与全局变量同名)​​函数。

如果要在函数中写入全局命名空间中的变量,则必须使用将变量解释为全局变量:

def按键关闭(事件):
全球旗帜
如果event.key==pygame.K_q:
flag=False

如果未将变量声明为全局变量,则会在的局部范围内生成一个局部变量(与全局变量同名)​​函数。

可能是一个范围问题,其中它没有更改
\uuuuuu main\uuuuu
标志?可能是一个范围问题,其中它没有更改
\uuuuu main\uuuu
标志?