以C++为主,AppDelegate内容:
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
…
// set FPS. the default value is 1.0/60 if you don't call this
director->setAnimationInterval(1.0 / 60);
auto engine = LuaEngine::getInstance();
ScriptEngineManager::getInstance()->setScriptEngine(engine);
lua_State* L = engine->getLuaStack()->getLuaState();
lua_module_register(L);
auto scene = SceneMenu::createScene();
director->runWithScene(scene);
SceneMenu就是一个普通的Scene了,区别是它试图加载一个lua层作为child:
bool SceneMenu::init(){
auto engine = LuaEngine::getInstance();
ScriptEngineManager::getInstance()->setScriptEngine(engine);
engine->executeScriptFile(“src/testLayer.lua”);
return true;
}
testLayer.lua关键内容:
…
local sceneGame = cc.Director:getInstance():getRunningScene()
sceneGame:addChild(createLayerFarm())
…
问题就在这个地方,getRunningScene()得到的值是nil,这里还不涉及C++和lua交互的问题,问题是cc.Director:getInstance()这个单例为什么无法得到RunningScene,如果想得到想要的效果应该怎么操作?
