创建流畅的跳跃动画
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 轴
我有一些基本的跳转代码。一旦玩家击中 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 轴