Как удалить спрайты и снова использовать тот же спрайт
Я новичок, в настоящее время я разрабатываю игру, подобную 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 после удаления. проверь, сохранил ли ты его или добавил в какой-нибудь контейнер