游戏不会从事件循环中停止

时间:2016-07-26 06:16:26

标签: python pygame

我做到了这一点,有点令人困惑,我无法弄清楚代码中的一个简单问题。

while not gameExit:
    while gameOver == True:
        pygame.display.flip()
        gameDisplay.fill(white)
        display_message("OVER. C to continue, Q to quit", red)

        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_q:
                    gameOver = False
                    gameExit = True
                if event.key == pygame.K_c:
                    gameLoop()

    for event in pygame.event.get():
        if event.type  == pygame.QUIT:
            gameExit = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                lead_x_change = -10
                lead_y_change = 0
            elif event.key == pygame.K_RIGHT:
                lead_x_change = 10
                lead_y_change = 0
            elif event.key == pygame.K_UP:
                lead_y_change = -10
                lead_x_change = 0
            elif event.key == pygame.K_DOWN:
                lead_y_change = 10
                lead_x_change = 0
        if  ( lead_x < 0 ) or (lead_x >= 600) or ( lead_y < 0 ) or ( lead_y >= 800):
            gameOver = True

因此,当我运行此代码时,当蛇越过边界时,C表示继续而Q表示退出的事情 UNTIL 我按下键盘上的按钮或移动我的鼠标。那是为什么?

1 个答案:

答案 0 :(得分:0)

移动:

if  ( lead_x < 0 ) or (lead_x >= 600) or ( lead_y < 0 ) or ( lead_y >= 800):
        gameOver = True

超出pygame.event.get循环,因为它只会在事件发生时运行(鼠标移动,按下键)。否则,如果没有您的操作,代码将无法到达支票。