【问题标题】:How to do slow motion effect in flash game with box2d如何用box2d在flash游戏中做慢动作效果
【发布时间】:2012-12-20 10:06:35
【问题描述】:
【问题讨论】:
标签:
actionscript-3
flash
box2d
【解决方案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 );
}