Starling和AS3物理引擎 - 如何组织动画

时间:2012-10-28 17:09:05

标签: actionscript-3 box2d physics starling-framework

在我的游戏中,一个物体(物体)移动每一帧,无论我使用Box2D还是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);
    }

但是Starling与魔术师一起使用动画。也许它会以某种方式影响性能。

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);

但是如果使用jugglers以及enter_frame动画?

1 个答案:

答案 0 :(得分:2)

当使用物理引擎时,通常不会通过添加到starling juggler的常规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;
  }

有一个great tutorial on gotoandlearn.com about using Starling and Nape涵盖了这一点,以及您需要开始的所有基础知识。希望这有帮助!