Pygame键只运行一次

问题描述 投票:0回答:1
def walk():
    x = 0
    y = 0
    dist = 5
    frame = 0
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

            key = pygame.key.get_pressed()
            if key[pygame.K_UP]:
                x = x - 5

这是使我的精灵移动的一些代码的一部分。但它试图让它打印它,而我按下按钮由于某种原因它只打印“yay”一次,直到我再次按下键。有人请帮忙。

python-3.x pygame
1个回答
2
投票

你必须使用key = pygame.key.get_pressed():线和下面的两条线。它们仅在事件队列中的每个事件执行一次,因为它们位于事件循环(for event in pygame.event.get():)中,但它们应该在每帧的while循环中执行。

def walk():
    x = 0
    y = 0
    dist = 5
    frame = 0
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

        key = pygame.key.get_pressed()
        if key[pygame.K_UP]:
            x = x - 5
© www.soinside.com 2019 - 2024. All rights reserved.