python - 如何让游戏重新开始?
问题描述
我正在制作一个游戏结束屏幕,它包括一个重新启动按钮。如果按下以将基本变量重置为 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()
解决方案
你可以像这样使用循环
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
推荐阅读
- javascript - 为 TestCafe 异步创建动态测试
- sas - SAS EG 导出 Excel 并通过
- javascript - React:直接从函数内部渲染列表对象
- facebook - 我可以获得 Facebook 注销的工作代码吗?
- swift - Firebase 存储与游戏数据数据库
- mysql - 如何使用 SSL 将 CakePHP 2.x 应用程序连接到 AWS RDS 实例?
- infragistics - 如何在 Infragistics ig 网格中更改工具提示的宽度
- android - 如何使用 mvvm 模式显示警报对话框
- azure - 将数据从流分析输出到 powerbi 时被覆盖的数据
- facebook - Facebook Marketing API 广告_管理评论