当我正在开发侧视自行车特技游戏时,我试图在自行车执行特技时添加慢动作效果。是否有任何解决方案可以在 Box2D 中显示这种慢动作效果。有人可以在这方面帮助我吗
谢谢并恭祝安康,
钱德拉塞卡
当我正在开发侧视自行车特技游戏时,我试图在自行车执行特技时添加慢动作效果。是否有任何解决方案可以在 Box2D 中显示这种慢动作效果。有人可以在这方面帮助我吗
谢谢并恭祝安康,
钱德拉塞卡
使用或不使用 Box2D 来实现此效果的一种简单方法是增加时间修改器。
所以假设你在运行函数中移动播放器,如下所示:
player.x += vel_x;
player.y += vel_y;
您可以设置一个初始化为 1 的时间修饰符变量
var time_mod:Number = 1;
然后按照以下方式更新您的所有动作
player.x += vel_x * time_mod;
player.y += vel_y * time_mod;
然后当你想要“慢动作效果”时改变你的 time_mod 变量。对于一半的实时时间,将您的 time_mod 更改为 0.5。如果你想超速将它更改为2或3,超慢?更改为 0.3
你明白了吗?
如前所述,改变时间步长可以产生慢动作效果。它还具有改变重力影响身体的方式的副作用,并且可能使其他事情复杂化,例如在多人游戏中记录重播或同步状态。
另一种选择是为每个时间步使用固定的时间步长,并跟踪所有实体的先前位置和角度。然后,您可以在最后一帧和当前帧之间进行插值,以在帧之间的位置绘制它们。这意味着您总是在物理引擎中的当前位置稍稍落后于它们的当前位置,但在 30-60fps 的典型帧速率下应该不会被注意到。