【发布时间】:2021-02-08 06:26:17
【问题描述】:
如何使用用户输入重新启动游戏?我到处搜索,但无法发现如何重新启动游戏,我只想按 ESC 并重新启动游戏,在知道如何操作之后,我将实现一个按钮,但是我怎样才能重新开始我的游戏?这是我的主循环:
while True:
pygame.time.Clock().tick(fps)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
#input
elif event.type == pygame.KEYDOWN:
#snake
if event.key == ord('w'):
change_to = 'UP'
if event.key == ord('s'):
change_to = 'DOWN'
if event.key == ord('a'):
change_to = 'LEFT'
if event.key == ord('d'):
change_to = 'RIGHT'
#snake2
if event.key == pygame.K_UP:
change2_to = 'UP'
if event.key == pygame.K_DOWN:
change2_to = 'DOWN'
if event.key == pygame.K_LEFT:
change2_to = 'LEFT'
if event.key == pygame.K_RIGHT:
change2_to = 'RIGHT'
#quit game
if event.key == pygame.K_ESCAPE:
#here is where was supposed to restart the game
我把主要部分删掉了,但我不知道如何重新开始我的游戏
【问题讨论】:
-
您可以将整个游戏的主要部分放入一个函数中,例如
runGame(),然后退出并调用该函数。但重要的是重新初始化一切回到起始状态。问题中没有足够的代码在这方面做出准确的答案。 -
是的,我这样做了,并将我的 while True: 放在一个函数上,但是当我运行程序时它什么也没做,我在哪里调用这个函数才能让它工作?
-
在您当前的第一行
while True上方可能有一些初始化代码。把整个东西,包括这个游戏循环,放到一个函数中,只让 Esc 键从它返回。然后循环调用该函数。请记住,您还可以将return与一个值一起使用,以表示“赢”、“输”、“重新开始”和“退出”等内容。
标签: python python-3.x loops while-loop pygame