пытаясь сделать спрайт прыжок - PullRequest
0 голосов
/ 25 февраля 2019

** Когда я нажимаю стрелку вверх, спрайт прыгает, но когда он падает, он продолжает падать.Вот мой код.он не делает этого с левой и правой клавишами.

   x = (display_width * 0.1)
y = (display_height * 0.75)
x_change = 0
y_change = 0

over = False
while over == False:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            over = True

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change -= 5
            if event.key == pygame.K_RIGHT:
                x_change += 5
            if event.key == pygame.K_UP:
                y_change = -30

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                x_change = 0
            if event.key == pygame.K_RIGHT:
                x_change = 0
            if event.key == pygame.K_UP:
                y_change = 30


    x += x_change
    y += y_change

1 Ответ

0 голосов
/ 25 февраля 2019

Проблема вызвана тем, что y_change остается на 30 во время последующей обработки.

if event.type == pygame.KEYUP:
    if event.key == pygame.K_LEFT:
        x_change = 0
    if event.key == pygame.K_RIGHT:
        x_change = 0
    if event.key == pygame.K_UP:
        y_change = 30                # <=== HERE

Таким образом, когда происходит событие, y_change становится равным 30 - поэтому позиция перемещается обратно вниз.Но в следующем цикле y_change равно по-прежнему 30, поэтому он продолжает двигаться вниз, снова и снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...