cocos2d-x视差节点没有更新它的子位置

时间:2014-05-20 11:06:41

标签: android 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 个答案:

答案 0 :(得分:1)

精灵的位置是相对于它们的父节点(在你的情况下是layerMoveLeft),所以它们不会改变它们的值,除非你单独改变它们的位置。要获取每个精灵的绝对值,您需要将父节点位置添加到它们的位置。