2012-11-08 20 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,那么您的解决方案将完美工作。 –