我正在制作游戏结束画面,其中包含一个重新启动按钮。我按下了重新启动按钮,将其重置为False和0,但没有重启游戏,而是退出了。我不知道该变量是否不能再次设置为true,或者是否有代码语句重新启动包括变量在内的所有内容。有什么建议么? 所有代码都在def DrawGameOver中。
def DrawGameOver():
win.blit (Overscreen, (0, 0))
button1 = pygame.Rect(200, 400, 100, 50)
pygame.draw.rect(win, [255, 0, 0], button1)
if event.type == pygame.MOUSEBUTTONDOWN:
mouse_pos = event.pos
if button1.collidepoint(mouse_pos):
player.gameover = False
player.run = True
player.grassdamage = 0
player.damage1 = False
player.damage2 = False
player.damage3 = False
player.damage4 = False
player.damage5 = False
player.damage6 = False
player.damage7 = False
player.damage8 = False
player.score = 0
time_now = 0
Text = pygame.font.Font('freesansbold.ttf', 20)
TextSurf, TextRect = text_objects("Restart?", Text)
TextRect.center = ((250), (425))
win.blit(TextSurf, TextRect)
pygame.display.update()
while player.gameover:
clock.tick (60)
print (player.run, player.gameover)
for event in pygame.event.get():
if event.type == pygame.QUIT:
player.gameover = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
player.gameover = False
DrawGameOver()
答案 0 :(得分:1)
您可以使用像这样的循环
while True:
intro()
menu()
game()
gameover()
它应该一次又一次地运行游戏
如果函数要在结束游戏时返回False
,则可以
while True:
if not intro():
break
if not menu():
break
if not game():
break
if not gameover():
break