2014-05-05 51 views
0

我有一個精靈在屏幕上從左到右,當它離開屏幕時它不會回來。哪裏是釋放它的最佳地點?在更新方法?要麼?當它離開屏幕時刪除一個精靈

+0

嘿,你如何檢查精靈熄滅了屏幕? ,通過不斷檢查其在更新中的位置:? (這與您的問題不同!) – BaSha

+0

那麼還有其他更有效的方法嗎? – user1028028

回答

0

是的,它只能在更新方法中添加。因爲每個幀都會由Sprite Kit自動調用update:方法。

+0

這種有點低效......有沒有別的辦法? – user1028028

+0

刪除對象不起作用? – NKB

2

您可以使用didSimulatePhysics方法。它在更新方法之後調用。我們可以確定,更新方法中的任何需要完成的任務都會完成,然後清理對象或循環遍歷它們並找出哪些需要刪除。

- (void)didSimulatePhysics { 

    [self removeAllObstacles]; 
} 

- (void)removeAllObstacles { 

    [blocks removeAllChildren]; 

    [gameLayer enumerateChildNodesWithName:@"baddies" usingBlock:^(SKNode *node, BOOL *stop) { 

     if (node.position.x < - 100) 
      [node removeFromParent]; 
    }]; 
} 
相關問題