删除和添加子项后,Cocos2d-x子精灵不会显示

时间:2014-02-25 14:00:42

标签: c++ cocos2d-x cocos2d-x-3.0

我有一些节点可以将少数精灵作为孩子 在某些时候,我尝试删除子向量中的最后一个并添加为第一个 它永远不会出现在屏幕上的问题 删除/添加操作后我需要一些刷新功能吗?

pButtomReel = Node::create();
pButtomReel->addChild(sprite1);
pButtomReel->addChild(sprite2)
pButtomReel->addChild(sprite3)
pButtomReel->addChild(sprite4)

// every thing is renders right on the screen 

// now i try to remove and add sprites

Sprite *spriteLastToHandle = static_cast<Sprite*>(pButtomReel->getChildren().at(pButtomReel->getChildren().size()-1));               
Sprite *spriteFirstToHandle = static_cast<Sprite*>(pButtomReel->getChildren().at(0));

float YFirst = spriteFirstToHandle->getPositionY();
float XFirst = spriteFirstToHandle->getPositionX();

float YLast = spriteLastToHandle->getPositionY();
float XLast = spriteLastToHandle->getPositionX();

spriteFirstToHandle->setPosition(XLast,YLast);
int s1 = pButtomReel->getChildren().size();  //SHOWS RIGHT 4
pButtomReel->getChildren().erase(0);
int s2 = pButtomReel->getChildren().size(); //SHOWS RIGHT 3
pButtomReel->getChildren().insert(0,spriteLastToHandle);
 int s3 = pButtomReel->getChildren().size(); //SHOWS RIGHT 4 all looks fine 

但我添加的精灵:

pButtomReel->getChildren().insert(0,spriteLastToHandle); 

永远不会出现 为什么?

0 个答案:

没有答案