如何删除精灵并再次使用相同的精灵

时间:2014-09-02 06:02:08

标签: c++ ios xcode cocos2d-x

我是初学者,目前我正在使用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
}

提前致谢

3 个答案:

答案 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)并更改位置。