Try
CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall, NULL);
instead of
CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall);
Hope this helps.
質問
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?
解決
Try
CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall, NULL);
instead of
CCSequence *newSeq = CCSequence::create(tmeDelay, progressIncreaseCall);
Hope this helps.