1

車がオブジェクトにぶつかったときにスローモーション効果を追加しようとしているトップビューのレーシングゲームに取り組んでいるようです。Stage.frameRateを下げてみましたが、ゲームが遅れているように見えます。touch my pixelというオンライン チュートリアルも試してみました(参照: 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 に答える