Question

I'm having a EXC_BAD_ACCESS (code=1 ...) sometimes code=2 using cocos2d-x. Getting this error when I do for example:

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

}

Here is code for callfunc_selector :

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

Its get crash in CCDictionary.cpp on this method:

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

Can anyone help me with this?

Was it helpful?

Solution

Try

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

instead of

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

Hope this helps.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top