如何用box2d在flash游戏中做慢动作效果

时间:2012-12-20 10:06:35

标签: actionscript-3 flash box2d

当我正在研究顶视图赛车游戏时,我试图在汽车撞击物体时添加慢动作效果。我已尝试减少 Stage.frameRate ,但游戏似乎滞后。我也尝试过在线教程,名为 触摸我的像素 (参考:http://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/)。但我不明白。

是否有任何解决方案可以显示这种慢动作效果。在这方面有人可以帮助我

谢谢和问候,

Chandrasekhar的

1 个答案:

答案 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 );
}