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



我正试图通过按下";q〃;钥匙没有错误,但由于某种原因它不起作用。请帮忙。

import pygame
screen = pygame.display.set_mode((0,0))
screen_rect = screen.get_rect()
pygame.init()
flag = True
class Ship:
def __init__(self):
self.image = pygame.image.load('images/ship.bmp')
self.rect = self.image.get_rect()
self.rect.center = screen_rect.center
def blitme(self):
screen.blit(self.image,self.rect)
def keydown(event):
if event.key == pygame.K_q:
flag = False 
ship = Ship()
while flag:
for event in pygame.event.get():
if event.type == pygame.QUIT:
flag = False
elif event.type == pygame.KEYDOWN:
keydown(event)
screen.fill((0,0,128))
ship.blitme()
pygame.display.flip()

flag = True时游戏循环正在工作。当我点击窗口退出按钮时,关闭窗口是有效的,但按q没有任何结果。

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

def keydown(event):
global flag 
if event.key == pygame.K_q:
flag = False

如果未将变量声明为全局变量,则会在​​函数。

最新更新