0

In my game a objects (bodies) move each frame and it does not matter I use Box2D or Nape.

    //for example
var body:Body = createNewBall();
addChild( body.graphic );
    addEventListener( Event.ENTER_FRAME, loop);

    private function loop():void {
    space.step(1/30, 10, 10);
    }

But Starling use animation with jugglers. Perhaps it somehow affects performance.

var body:Body = createNewBall();
addChild( body.graphic );
var tween:Tween = new Tween(body.graphic, 2);
tween.animate("x", glX);
tween.animate("y", glY);
Starling.juggler.add(tween);

But how to use the jugglers in case enter_frame animation?

4

1 に答える 1

2

物理エンジンを使用する場合、通常Tween、スターリング ジャグラーに定期的に追加してオブジェクトをアニメーション化するのではなく、各ステップでエンジンによって計算された位置に従ってグラフィック オブジェクトの位置を更新するだけです。ENTER_FRAMEエンジンを各ステップに進めるには、を使用する必要があります。投稿したコードを使用すると、次のようなことができます。

  //for example
  var body:Body = createNewBall();
  addChild( body.graphic );

  //callback to update graphic position
  body.graphicUpdate = updateBallGraphics;

  addEventListener( Event.ENTER_FRAME, loop);

  private function loop():void
  {
    space.step(1/30, 10, 10);
  }

  private function updateBallGraphics(b:Body):void
  {
    b.graphic.x = b.position.x;
    b.graphic.y = b.position.y;
  }

gotoandlearn.com には、 Starling と Nape の使用に関する優れたチュートリアルがあり、これをカバーし、開始するために必要なすべての基本事項を説明しています。お役に立てれば!

于 2012-11-07T00:38:55.033 に答える