【问题标题】:how restarting game on pygame works在 pygame 上重启游戏的工作原理
【发布时间】: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


【解决方案1】:

我觉得应该是这样的

# imports
restart = False
while running:
    if restart:
        # create instance of all objects used
        # score = 0
        # Default values should be initialised
    # Keyboard events go here
    # code for restarting
    if event.key == pygame.K_ESCAPE:
        restart = True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多