创建流畅的跳跃动画

Creating a smooth jump animation

我有一些基本的跳转代码。一旦玩家击中 space 条,玩家将开始跳跃,他们的 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

我之前对此很困惑,但有一个解决方案:尝试将它与着陆表面对齐,在屏幕更新之前更改它,这样人们就不会注意到它,它看起来会移动得更短一些(真的很少)。 例如:

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

小额外:

如果你想让重力起作用,你可以使用类似的方法来做到这一点,在撞击任何表面时,将重力设置为 0 并将玩家的 x 轴更改为表面的 x 轴