Как удалить спрайты и снова использовать тот же спрайт

Я новичок, в настоящее время я разрабатываю игру, подобную 2048, в x-коде с использованием cocos2d-x2.2.3. В моей игре мне приходится сталкиваться с двумя спрайтами. При столкновении я должен удалить две спиты и добавить в них новый спрайт. Я использую приведенный ниже код:

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 ответа

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);
}

}

Сначала попробуйте использовать removeChild с "false". Если это не сработает, вы можете использовать:

_player1->removeFromParent();

Но я рекомендую изменить текстуру спрайта (для игрока 1) и изменить позицию.

Если ваш спрайт не удален, возможно, потому что его счетчик ссылок не равен 0 после удаления. проверь, сохранил ли ты его или добавил в какой-нибудь контейнер

Другие вопросы по тегам