当我正在研究顶视图赛车游戏时,我试图在汽车撞击物体时添加慢动作效果。我已尝试减少 Stage.frameRate ,但游戏似乎滞后。我也尝试过在线教程,名为 触摸我的像素 (参考:http://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/)。但我不明白。
是否有任何解决方案可以显示这种慢动作效果。在这方面有人可以帮助我
谢谢和问候,
Chandrasekhar的
答案 0 :(得分:1)
最简单的方法是在某处使用全局修饰符属性,可用于增加游戏中所有内容的移动。
例如,您可以将属性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 );
}