为什么忽略我在for循环中继续?

问题描述 投票:-1回答:1
import pygame
import player

play = player.player()
pygame.init()
time = pygame.time.Clock()
key = 0
move = ""
List =[]
pygame.display.set_mode((100, 100))
while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            time_down = pygame.time.get_ticks()
            if event.key == pygame.K_LEFT:
                move = "l"
            if event.key == pygame.K_RIGHT:
                move = "r"
            if event.key == pygame.K_DOWN:
                move = "d"
                print('UNTEN')
            if event.key == pygame.K_UP:
                move = "u"
            if event.key == pygame.K_ESCAPE:
                break
            else:
                continue
        key += 1
        play.handlerevent(event)
        if event.type == pygame.KEYUP:
            time_elapsed = (pygame.time.get_ticks() - time_down) / 1000.0
            print("Nummer: ", key, "Zeit: ", time_elapsed)
            tmp = (move, key)
            List.extend(tmp)

你好,我是新来的,并且想知道,为什么我的for循环对继续没有反应。它进入else分支。但是只是忽略了继续。

python for-loop if-statement pygame continue
1个回答
1
投票

我怀疑您倒带了它:continue在不应该执行的情况下执行。

您需要使用elif作为条件序列。您的else:块仅与最后一个if条件相关联。因此,如果键为K_LEFT,它将进入else:块并继续,而不是执行循环的其余部分。

            if event.key == pygame.K_LEFT:
                move = "l"
            elif event.key == pygame.K_RIGHT:
                move = "r"
            elif event.key == pygame.K_DOWN:
                move = "d"
                print('UNTEN')
            elif event.key == pygame.K_UP:
                move = "u"
            elif event.key == pygame.K_ESCAPE:
                break
            else:
                continue

这样,仅当else:条件均不成功时,才会执行if块。

© www.soinside.com 2019 - 2024. All rights reserved.