2012-10-28 3 views
0

30 개의 스프라이트를 포함하는 CCSpriteBatchNode이 있습니다. 모든 스프라이트를 델타 X로 옮기고 싶습니다. 어떻게해야합니까?CCSpriteBatchNode에서 모든 스프라이트의 위치를 ​​업데이트하려면 어떻게해야합니까?

는 여기에 지금까지 시도한 작업은 다음과 같습니다

for (CCSprite *sprite in myBatchNode.children) 
    sprite.position = ccpAdd(sprite.Position, ccp(deltaX, 0.0)); 

을이 아마도 배치 노드에서 각 노드를 방문 명시 적으로 포함하지 않는 더 효율적인 방법이 있는지 궁금 해요 작동하지만. 배치 노드 자체를 옮기고 싶지는 않습니다.

+1

이 코드는 문제가 없습니다. 또한 비효율적이지 않습니다. 그것은 일을하고 그것은 당신의 framerate에 눈에 띄는 아무것도 할 수있는 미친 야생 물건을하고 있지 않습니다. 특히 30 스프라이트가 아닙니다. http://c2.com/cgi/wiki?PrematureOptimization – LearnCocos2D

답변

0

myBatchNode.position.x += deltaX; 

는 당신을 위해 동일한 작업을 수행하지 않을까요?

+0

가능합니다. 그러나 배치 노드 자체를 이동하지 않는 것이 좋습니다. – SundayMonday

관련 문제