最も簡単な方法は、ゲーム内のすべての動きを増加させるために使用できるグローバル モディファイヤ プロパティをどこかに持つことです。
たとえば、プロパティの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 );
}