简体   繁体   English

cocos2d-x:EXC_BAD_ACCESS问题

[英]cocos2d-x: EXC_BAD_ACCESS issue

I'm having a EXC_BAD_ACCESS (code=1 ...) sometimes code=2 using cocos2d-x. 我有一个EXC_BAD_ACCESS(代码= 1 ...),有时使用cocos2d-x代码= 2。 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 : 这是callfunc_selector代码:

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

Its get crash in CCDictionary.cpp on this method: 在这种方法下,它在CCDictionary.cpp崩溃:

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

Can anyone help me with this? 谁能帮我这个?

Try 尝试

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

instead of 代替

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

Hope this helps. 希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM