我正在向视差节点添加多个精灵,以便在特定方向上移动所有精灵。当我移动视差节点时,所有精灵都随之移动,但是他们没有更新它们的位置。手段 他们的立场与他们所创造的一致。
这是我的视差节点,我在其中添加了多个精灵。
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()但是当我移动视差节点时,所有精灵都会在视觉上移动,但它们并没有改变它们在后端的位置。
答案 0 :(得分:1)
精灵的位置是相对于它们的父节点(在你的情况下是layerMoveLeft),所以它们不会改变它们的值,除非你单独改变它们的位置。要获取每个精灵的绝对值,您需要将父节点位置添加到它们的位置。