2014-05-20 15 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循環的精靈。 – user3656281

相關問題