我是初学者,目前我正在使用cocos2d-x2.2.3在x-code中开发类似2048的游戏。在我的游戏中我必须碰撞两个精灵。虽然碰撞,我必须删除这两个spites并在同一位置添加一个新的精灵。我使用下面的代码:
if(_player1->boundingBox().intersectsRect(_player2->boundingBox()))
{
this->removeChild(_player1, true);//it is not removing properly
this->removeChild(_player2, true);
_player1 = new CCSprite();
_player1->initWithFile("2.png");
_player1->setPosition(ccp(position.x,position.y));
this->addChild(_player1);//I have to add same player again
}
提前致谢
答案 0 :(得分:1)
if(_player1->boundingBox().intersectsRect(_player2->boundingBox()))
{
this->removeChild(_player2, true);
if(_player1)
{
this->removeChild(_player1, true);
_player1 = new CCSprite();
_player1->initWithFile("2.png");
_player1->setPosition(ccp(position.x,position.y));
this->addChild(_player1);
}
}
答案 1 :(得分:0)
如果您的精灵没有被删除,可能是因为它的引用计数在删除后不为0。 检查您是保留它还是将其添加到某个容器中
答案 2 :(得分:0)
首先尝试使用removeChild和" false"如果不起作用,您可以使用:
_player1->removeFromParent();
但我建议更改精灵纹理(对于玩家1)并更改位置。