Добавление еще одного дочернего элемента в основной CCLayer приводит к тому, что другой дочерний элемент не работает должным образом
Я разрабатываю игру для Android с использованием cocos2d-x. В слое главного меню я поместил фоновое изображение, кнопку воспроизведения и также использовал класс CCSpriteParticleSystem, чтобы показать некоторый эффект падения снега. Проблема, с которой я сталкиваюсь, заключается в том, что когда я добавляю объект CCParticleSystem в качестве дочернего к основному слою, кнопка воспроизведения перестает работать. когда я нажимаю на кнопку воспроизведения, появляется черный экран и игра закрывается. Кто-нибудь может мне помочь, пожалуйста
Кодекс выглядит следующим образом:
//Particle SYstem for snow fall effect
CCParticleSystem *particle = CCParticleSnow::create();
particle->initWithTotalParticles(2000);
particle->release();
particle->setTexture(CCTextureCache::sharedTextureCache()->addImage("star.png"));
particle->setPosition(ccp(Utils::s().height - 10, Utils::s().height - 10));
this->addChild(particle,1);
//now including a sprite sheet and then setting the background image
s = CCDirector::sharedDirector()->getWinSize();
CCString* file = (Utils::getArtScaleFactor() > 1) ? CCString::create("img-hd.plist") : CCString::create("img.plist");
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(file->getCString());
file = (Utils::getArtScaleFactor() > 1) ? CCString::create("main-hd.png") : CCString::create("main.png");
CCSprite *bg = CCSprite::create(file->getCString());
bg->setPosition(ccp(s.width/2,s.height/2));
Utils::scaleSprite(bg);
this->addChild(bg,-1);
//below code creates a play button
CCMenuItemSprite *playButton = CCMenuItemSprite::create(GameButton::buttonWithText("PLAY!",false), NULL, this, menu_selector(MainMenu::playGame));
CCMenu *menu = CCMenu::create(playButton,NULL);
menu->setPosition(ccp(s.width/2,s.height/2 - s.height/4.0f));
this->addChild(menu,2);
в этом фрагменте кода используются несколько функций. buttonWithText (..) создает кнопку с текстом. Проблема в том, что когда я добавляю CCParticleSystem, кнопка Play не выполняет назначенную функцию
1 ответ
Я не могу понять, в чем проблема, но
particle->release();
это так странно
частица будет выпущена дважды