当我正在开发顶视图赛车游戏时,我试图在汽车撞到物体时添加慢动作效果。我尝试降低Stage.frameRate但游戏似乎滞后。我也尝试过名为“触摸我的像素”的在线教程(参考:http ://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/ )。但我不明白。
有什么解决方案可以显示这种慢动作效果。有人可以在这方面帮助我吗
谢谢并恭祝安康,
钱德拉塞卡
当我正在开发顶视图赛车游戏时,我试图在汽车撞到物体时添加慢动作效果。我尝试降低Stage.frameRate但游戏似乎滞后。我也尝试过名为“触摸我的像素”的在线教程(参考:http ://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/ )。但我不明白。
有什么解决方案可以显示这种慢动作效果。有人可以在这方面帮助我吗
谢谢并恭祝安康,
钱德拉塞卡
最简单的方法是在某处拥有一个全局修饰符属性,该属性可用于倍增游戏中所有事物的运动。
例如,您可以将属性speedModifier
默认设置为1
.
public var speedModifier:Number = 1;
每当你应用速度时,只需乘以修饰符:
body.SetLinearVelocity( new b2Vec2(x * speedModifier, y * speedModifier) );
这样,你需要做的所有游戏速度减半就是修改器的一半:
speedModifier = 0.5;
为了使您的代码更整洁并使管理游戏的这个组件更容易,可能有一种直接的方法来迭代 Box2D 世界中的所有物体并在每个更新步骤的顶部修改它们的速度。类似于以下内容:
for each(var i:b2Body in world.GetBodyList())
{
var currentVel:b2Vec2 = i.GetLinearVelocity();
var newVel:b2Vec2 = new b2Vec2(
currentVel.x * speedModifier,
currentVel.y * speedModifier
);
i.SetLinearVelocity( newVel );
}