2012-11-08 63 views
1

我使用cocos2d的1.0.1。ccSpriteBatchNode孩子邊框改造

我創建了一個CCSpriteBatchNode,它包括一個CCSprite(讓我們將其命名爲parentLayer),其中包括兒童的(CCSprites)的一些X號。

問題是 - 當我旋轉parentLayer所有精靈(孩子)正確顯示,但邊界框在相同的地方(他們已經在旋轉之前),所以這些精靈的世界座標將不會改變。

關當然,上述所有沒有CCSpriteBatchNode的偉大工程。但是,由於涉及的精靈數量衆多,我想使用批處理節點。

的問題是,有沒有什麼辦法,以相應更新邊界框&孩子的位置?

回答

0

多少的精靈,我們談論的?我只需要快速的枚舉調用來分別旋轉每一個。在這樣做的時候,我並沒有注意到性能受到影響,是嗎?

CCArray *listOfChildren = [parentLayer children]; 
for (CCSprite *sprite in listOfChildren) { 
    [sprite setRotation:someValue]; 
} 
+0

感謝快速回復。我嘗試了這種方法,但它不會改變孩子的座標。所有的孩子都有一個方形的形狀,他們的錨點== 0.5f,0.5f,所以他們只會在他們去過的地方旋轉。但是,可以將錨點更改爲圖層的中心,然後旋轉,但是對於碰撞和其他內容我會進行相當複雜的計算。 –

+0

如果有一種方法可以根據父級的anchorPoint位置設置子級的anchorPoint,那麼您的解決方案將完美工作。 –