在iOS上的Cocos2dx中,我无法重新启动同一个场景。 我想在玩家死亡时重新启动相同的场景。启动时会发生很多事情,所以如果可能的话我宁愿不尝试手动重置所有游戏变量,清除缓存等。
在玩家死亡的部分我执行以下操作
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();但我真的无法继续遵循它。我在更换场景时做错了吗?
感谢您的帮助
答案 0 :(得分:0)
虽然你应该在scene()静态函数中实现适当的检查,但我认为这可能不会导致问题。 如果你可以提供这个GameLayer课程的所有代码,我可能会指出你的错误,因为我已经完成了你想要做的事情。
你可能正试图在init函数中使用纹理缓存执行非法操作,这是我的猜测。但是要发布你的代码!