2014-02-25 54 views
0

將我的遊戲從Cocos2d v2移植到v3我不知道什麼時候精靈離開了屏幕。Cocos2d 3.0花栗鼠引力:精靈位置不變

在V2我的解決辦法是:

-(void) update:(ccTime) delta 
{ 
    // Should use a fixed size step based on the animation interval. 
    int steps = 2; 
    CGFloat dt = [[CCDirector sharedDirector] animationInterval]/(CGFloat)steps; 

    for(int i=0; i<steps; i++){ 
     cpSpaceStep(space_, dt); 
    } 

    if (mySprite.getPhysicsBody->p.y > 500) 
     [mySprite resetPosition]; 
} 

現在的cocos2d V3 mySprite.physicsNode.position不通過時間而改變。

任何想法或鏈接的例子?

謝謝。

回答

0

physicsNode.position不隨時間變化,因爲它使用它的父精靈座標空間,而不是全局座標空間。

您可以得到任何節點的全局位置,考慮到錨點,使用這樣的:

CGPoint worldPos = [node convertToWorldSpaceAR:CGPointZero]; 

之後,您可以在必要時很容易地轉換到任何其他節點的空間(如你的水平,也許)使用:

CGPoint position = [_levelNode convertToNodeSpaceAR:worldPos]; 

但要注意,你不應硬編碼的屏幕大小上你的代碼,因爲它改變了每個設備。您可以使用:

CGSize viewSize = [[CCDirector sharedDirector] viewSize];