2012-10-28 20 views
0

在我的遊戲中,一個對象(物體)移動每個框架,並不重要,我使用Box2D或Nape。Starling和AS3物理引擎 - 如何組織動畫

//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動畫的情況下使用雜耍者?

回答

2

當使用物理引擎時,通常不會通過將常規Tween添加到Starling雜耍器中來爲您的對象製作動畫,而是根據引擎在每個步驟中計算的位置更新圖形對象的位置。您將需要使用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覆蓋這一點,你需要的所有基本知識開始。希望這可以幫助!