如何在ursina引擎中制作兔子跳?

问题描述 投票:0回答:1

我想在 ursina 引擎中制作 bhop 机制。如果按下空格键,角色将永远跳跃,如果按下w按钮,则每次跳跃的速度都会增加。加快扫射速度也是可取的(但不是必要的)。

python game-engine ursina
1个回答
0
投票

因此,“兔子跳跃”我假设你的意思是角色比跑步/冲刺时移动得更快,每次跳跃的速度都会增加。

速度可以在跳跃或地面移动(或两者)期间应用。根据我的经验,永远处于跳跃状态最终可能会导致问题,但我们可以说我们就是这么做的。你会得到类似的东西:

def input(self, key):
    if (key == 'space') 
        self.position += self.forward * player.speed
        self.position_y += jump_upwards_speed 

在上面的示例中,根据您是否想在跳跃期间或在地面上移动得更快,player.speed值将是设定速度或乘以当前速度提升。

对于实际的兔子跳跃,您每次跳跃都要乘以当前速度。 请记住,如果您从接地开始跳跃,您只想添加乘数。

current_speed_multiplier = current_speed_multiplier + per_hop_multiplier_amount
# then update the player speed 
player.speed = original_speed * current_speed_multiplier

请注意,如果您没有添加可以加速的最大次数或跳跃可以达到的最大高度,这可能会导致一些问题。

由于您不想永远保持速度倍增,因此您还需要降低每次更新(或设置的计时器)的速度。

current_speed_multiplier = current_speed_multiplier - diminish_value_per_update

总结一下:

  1. 如果按住按钮,则在跳跃过程中将玩家角色向上移动,否则向下移动
  2. 确定角色何时再次回到地面
  3. 每次角色从地面跳跃时应用乘数
  4. 在跳跃和/或跑步期间应用速度倍增器
  5. 如果静止不动(或在计时器上)则降低速度

但这取决于其余代码的实现,我建议您自己尝试一下,看看它是如何工作的!

© www.soinside.com 2019 - 2024. All rights reserved.