0

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

但是在enter_frame动画的情况下如何使用杂耍者呢?

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 回答