Создание анимации плавного прыжка - PullRequest
0 голосов
/ 29 мая 2020

У меня есть базовый c код перехода. Как только игрок нажмет пробел, игрок начнет прыгать, и его jumpCount будет установлено на 20. jumpCount уменьшается вместе с y игрока, пока не достигнет -20. Основная проблема с этим кодом заключается в том, что после того, как игрок прыгнет, он будет немного опускаться ниже каждый раз, когда достигнет земли.

y = 100
jumpCount = 20

while True:
    if keys[pygame.K_SPACE]:
        isJump = True

    if isJump:
        if jumpCount >= -20:
            neg = 1 
            if jumpCount < 0:  
                neg = -1

            y -= (jumpCount ** 2) * 0.05 * neg
            jumpCount -= 1

        else:
            jumpCount = 20
            isJump = False

1 Ответ

0 голосов
/ 29 мая 2020

Раньше меня это сбивало с толку, но есть решение: попробуйте выровнять его по поверхности приземления, измените его перед обновлением экрана, чтобы люди этого не заметили, это будет выглядеть так, как будто он двигается немного короче (правда немного). например:

if player.x < surface.x:
 player.x = surface.x
update()

Немного дополнительно:

если вы хотите, чтобы гравитация работала, вы можете использовать аналогичный способ сделать это, при ударе по любой поверхности, установите гравитацию на 0 и измените x игрока ось к оси x поверхности

...