2014-04-29 2 views
0

때때로 cocos2d-x를 사용하여 EXC_BAD_ACCESS (코드 = 1 ...) 코드 = 2를 사용하고 있습니다. 내가 예를 들어 수행 할 때이 오류를 얻는 것은 :cocos2d-x : EXC_BAD_ACCESS 문제

여기
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에 대한 코드입니다 :

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

이 사람이 나를 도울 수 :

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

그것의이 방법에 CCDictionary.cpp에서 충돌을 얻을 이?

답변

0

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

대신

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

희망이 도움이보십시오.