1

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

有什么解决方案可以显示这种慢动作效果。有人可以在这方面帮助我吗

谢谢并恭祝安康,

钱德拉塞卡

4

1 回答 1

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 );
}
于 2012-12-20T10:11:55.293 回答