【发布时间】:2020-04-03 16:37:48
【问题描述】:
如果你看下面的代码,我的绘图函数中有 if 条件,可以根据目标精灵组的长度呈现赢家屏幕和输家屏幕(这是一个目标射击游戏)。我添加了一个名为 game_over 的布尔变量。当显示输家或赢家屏幕时,这将更改为 True。然后,在游戏循环中,我添加了一个事件,如果按下 x,则终止 while 循环。经过测试,pressign x 似乎什么也没做。但是我不明白为什么会这样,因为我已经复制了其他 stackoverflow 应答器使用的关键事件函数的使用。
def refresh_window():
if len(target_sprites) > 0:
window.blit(bgr, (0,0))
if len(target_sprites) == 0:
window.blit(winner, (0,0))
player_sprite.kill()
game_over = True
if target_1.got_away == True:
window.blit(loser, (0,0))
for item in target_sprites:
item.kill()
player_sprite.kill()
game_over = True
while exec:
current_time = pygame.time.get_ticks()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exec = False
key_press = pygame.key.get_pressed()
if game_over == True:
if key_press[K_x]:
exec = False
【问题讨论】: