android — cocos2d-x: проблема EXC_BAD_ACCESS

У меня EXC_BAD_ACCESS (code = 1 …) иногда code = 2 с использованием cocos2d-x. Получение этой ошибки, когда я делаю, например:

void HelloWorld::gameLogic(float dt)
{
if (gameState == GameFinish)
{

seaBaseWidth = seaBase->getPositionX();
seaBase->stopAllActions();
CCUserDefault::sharedUserDefault()->setBoolForKey("isHaveHistoryOfSeaBaseWidth", true);
CCUserDefault::sharedUserDefault()->setFloatForKey("basePositionX", seaBaseWidth);
CCUserDefault::sharedUserDefault()->flush();

if (!CCUserDefault::sharedUserDefault()->getBoolForKey("isHaveHistoryScore"))
{
int bestSocre = CCUserDefault::sharedUserDefault()->getIntegerForKey("HighestScore");
if (bestSocre < bird->score)
{

CCUserDefault::sharedUserDefault()->setBoolForKey("isHaveHistorySchore", true);
CCUserDefault::sharedUserDefault()->setIntegerForKey("HighestScore", bird->score);
CCUserDefault::sharedUserDefault()->flush();

}

}

CCUserDefault::sharedUserDefault()->setBoolForKey("isHaveHistoryCurrentSchore", true);
CCUserDefault::sharedUserDefault()->setIntegerForKey("currentScore", bird->score);
CCUserDefault::sharedUserDefault()->flush();

CCDelayTime* tmeDelay = CCDelayTime::create(1.4f);
CCCallFunc* progressIncreaseCall = CCCallFunc::create(this, callfunc_selector(HelloWorld::GameOverScoreScreenStart
));
CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall);
this->runAction(newSeq);
}

}

Вот код для callfunc_selector :

void HelloWorld::GameOverScoreScreenStart()
{
CCDirector::sharedDirector()->replaceScene(Score::scene());
}

Его врезаться в CCDictionary.cpp по этому методу:

unsigned int CCDictionary::count()
{
return HASH_COUNT(m_pElements);
}

Кто-нибудь может мне с этим помочь?

0

Решение

Пытаться

 CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall, NULL);

вместо

 CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall);

Надеюсь это поможет.

0

Другие решения


По вопросам рекламы [email protected]