就是没有啥特别的地方,所以才会有疑问,接入方式和旧版本完全一样。我的tolua初始化是在现在的StartupCall::startup()函数里面做的,我插入了一段代码:
// set default scene
CCScene *scene = CCScene::create();
if (CCDirector::sharedDirector()->getRunningScene())
{
CCDirector::sharedDirector()->replaceScene(scene);
}
else
{
CCDirector::sharedDirector()->runWithScene(scene);
}
lua_State *L = pEngine->getLuaStack()->getLuaState();
//load scut sdk
string script_dir = path.substr(0, path.find_last_of("/"));
string root_dir = script_dir.substr(0, script_dir.find_last_of("/"));
ScutExt::Init(root_dir+"/", L);
// load script
string env = "__LUA_STARTUP_FILE__=\"";
env.append(path);
env.append("\"");
pEngine->executeString(env.c_str());
其中 //load scut sdk这段就是我接入的scut的客户端sdk,为了保证tolua的state是和全局的一致,我把lua_State *L = pEngine->getLuaStack()->getLuaState();这个都传进去了,但是效果和使用它默认的通过CCLuaEngine::defaultEngine()取lua_State来初始化tolua函数是一样的,都是static能够调用,成员不能调用。所以说我就很奇怪是否2.2.3需要遵循什么样和以前不一致的规则来接入C ++模块?