2014-05-20 2 views
0

시차 노드에 여러 개의 스프라이트를 추가하여 모든 스프라이트를 특정 방향으로 이동시킵니다. 시차 노드를 움직이면 모든 스프라이트가 함께 움직이지만 위치는 업데이트되지 않습니다. 그것들의 위치는 모두 동일하게 유지된다는 것을 의미합니다.cocos2d-x 시차 노드가 자식 위치를 업데이트하지 않습니다

이것은 여러 개의 스프라이트를 추가하는 시차 노드입니다.

layerMoveLeft = CCParallaxNode::create(); 
this->addChild(layerMoveLeft); 

여기 시차 노드에 여러 개의 스프라이트가 추가됩니다.

for (int varX = 0; varX < 8; ++varX) 
    { 
     plate = new Plate(); // sprite object 
     CCPoint pos = ccp(platesPosition,visibleSize.height/2.8); 
     plate->setPosition(layerMoveLeft->convertToNodeSpace(pos)); 
     layerMoveLeft->CCNode::addChild(plate); 
     plate->addComponent(new PlateAction()); 
     platesPosition = platesPosition + 190; 

    } 

나는 판에 추가 한 구성 요소는 새로운 plateAction()하지만 난 시차 노드를 이동하면 모든 스프라이트 시각적으로 이동하지만 백엔드에서의 위치를 ​​변경하지 않았다.

답변

1

스프라이트의 위치는 상위 노드 (귀하의 경우에는 layerMoveLeft)와 관련되어 있으므로 위치를 개별적으로 변경하지 않으면 스프라이트의 값이 변경되지 않습니다. 각 스프라이트의 절대 값을 얻으려면 상위 노드 위치를 자신의 위치에 추가해야합니다.

+0

당신은 맞지만 모든 스프라이트를 배열에 넣고 for for 루프를 사용하여 모든 스프라이트를 옮기는 또 다른 아이디어가 있습니다. – user3656281

관련 문제