【发布时间】:2017-09-12 12:16:27
【问题描述】:
我有一个 GAME OVER 屏幕,当您的生命值耗尽时该屏幕仍在运行。这个 GAME OVER 屏幕使用 show_go_screen 执行。我试图将 show_go_screen 的方法复制到另一个屏幕的 show_winning() 函数中。我通过在回到游戏时将你的健康恢复正常来操纵这个节目获胜功能。但是,一旦您进入 YOU WIN 屏幕并返回游戏,您将无法再次进入 YOU WIN 屏幕。我在下面包含了我的玩家盾牌的代码(确定何时有 GAME OVER/YOUWIN 事件)我还包含了 show_go_screen 的方法(用于 GAME OVER)和 show_winning() 方法的代码(即为您赢了屏幕)。如果有人能告诉我如何最好地修改我的代码以获得所需的结果。
if TrumpHits:
self.trump.shield -= 25
if self.trump.shield <= 0:
self.show_winning()
self.winning = True
if hits:
self.player.shield -= 20
if flyby:
self.player.shield -= 30
if self.player.shield <= 0:
self.playing = False
这里是 show_go_screen() 和 show_winning() 方法
def show_go_screen(self):
# game over/continue
if not self.running:
return
bg = pg.image.load("GAMEOVERslimeCOVERAGE.png")
self.screen.blit(bg,(0,0))
self.draw_text("Press space bar to play again", 22, WHITE, WIDTH / 2, HEIGHT * 7 / 8)
HEIGHT / 2 + 40)
pg.display.flip()
waiting = True
while waiting:
self.clock.tick(FPS)
for event in pg.event.get():
if event.type == pg.QUIT:
waiting = False
self.running = False
if event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE:
waiting = False
self.PlayMusic()
def show_winning(self):
# game over/continue
if self.winning:
return
bg = pg.image.load("TRUMPyouwin3d.png")
self.screen.blit(bg,(0,0))
self.draw_text("Press any key to play again", 22, WHITE, WIDTH / 2, HEIGHT * 7 / 8)
pg.display.flip()
waiting = True
while waiting:
self.clock.tick(FPS)
for event in pg.event.get():
if event.type == pg.QUIT:
waiting = False
self.running = False
if event.type == pg.KEYDOWN:
if event.key == pg.K_SPACE:
waiting = False
self.PlayMusic()
self.player.shield = 100
self.trump.shield = 100
def wait_for_key(self):
waiting = True
while waiting:
self.clock.tick(FPS)
for event in pg.event.get():
if event.type == pg.QUIT:
waiting = False
self.running = False
if event.type == pg.KEYUP:
waiting = False
【问题讨论】:
-
不要发布你的代码;改为创建minimal reproducible example。这将使问题对其他人更有益,因为它变得更易于阅读、理解、测试/验证,并且也使试图找出问题的人更容易。