2
在iOS上的Cocos2dx中,我遇到了重新啓動相同場景的問題。 我希望在玩家死亡時重新啓動相同的場景。開始時會發生很多事情,所以如果可能的話,我寧願不嘗試手動重置所有遊戲變量,清除緩存等。Cocos2dx重新啓動場景崩潰CCTextureCache
在玩家死亡我做了部分支持以下
cocos2d::CCScene *pScene = GameScene::scene();
cocos2d::CCDirector::sharedDirector()->replaceScene(pScene);
但是,這導致了下列崩潰:
CCTextureCache::CCTextureCache()
{
CCAssert(g_sharedTextureCache == NULL, "Attempted to allocate a second instance of a singleton.");
m_pTextures = new CCDictionary();
}
Gamescene是CCLayer繼承它的構造看起來是這樣的。
CCScene* GameScene::scene()
{
CCScene *scene = CCScene::create();
GameScene *layer = GameScene::create();
scene->addChild(layer);
return scene;
}
該應用程序在此行上崩潰GameScene * layer = GameScene :: create();但我無法進一步追蹤它。我在替換場景中做錯了什麼?
感謝所有幫助
看起來很好,問題是:除此之外,你還做了其他什麼嗎?一個常見的問題是在cocos2d之後過於急於清理 - 通常只是不必要的,有時適得其反(例如每次發生場景更改時清除所有緩存的數據),並且在極少數情況下可能會崩潰(嘗試釋放導演等等) 。調用堆棧的崩潰將有所幫助。 – LearnCocos2D