我正在做一个游戏界面,它包括一个重启按钮。我让重启按钮,如果按下重置基本变量为假和0,但不是重新开始游戏只是退出。我不知道是否变量不能再次设置为真,或者是否有一个代码语句,重新启动一切,包括变量。有什么建议吗? 所有代码都在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()
问题来源StackOverflow 地址:/questions/59378684/how-would-i-get-the-game-to-restart
你可以像这样使用循环
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。