Pygame ключи запускаются только один раз - PullRequest
0 голосов
/ 01 сентября 2018
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» только один раз, пока я не нажму клавишу еще раз. Кто-нибудь, пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 сентября 2018

Вы должны отступить строку 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...