cocos2d-x + Lua(2) C++和lua数据通讯之间的互调(5)
来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:17 点击:次
p> }
p> }
p> /*
p> lua_call
p> 第一个参数:函数的参数个数
p> 第二个参数:函数返回值个数
p> */
p> lua_call(ls, countnum, 0);
p>
p>}
p>
p>
p>const char* PublicSendLuaData::getFileFullPath(const char* fileName){
p> return CCFileUtils::sharedFileUtils()->fullPathForFilename(fileName).c_str();
p>}
p>
p>PublicSendLuaData::~PublicSendLuaData(){
p>
p> CC_SAFE_DELETE(m_instance);
p> m_instance=NULL;
p>}
p>复制代码
p>
p>
p>上面都有注释,我就不详细去一一赘述,不过以上方法能满足大部分在C++中访问Lua的各种需求;
p>
p>我这里就只说一个例子如:
p>
p>CCArray* arraypar = CCArray::create();
p>arraypar->addObject(CCString::create("参数值"));
p>CCArray* arraytype =CCArray::create();
p>arraytype->addObject(CCString::create("string"));
p>PublicSendLuaData::getInstance()->callLuaFuncPar("Lua文件名", "参数名", arraypar, arraytype);
p>这个就是具体调用Lua里面一个带参数全局方法的语句;
p>
p>我写了一个类型匹配的方法:
p>
p>复制代码
p> if(typestr->isEqual(CCString::create("string")))
p> {
p> lua_pushstring(ls, strnr->getCString());
p> }
p> else if(typestr->isEqual(CCString::create("int")))
p> {
p> lua_pushnumber(ls, strnr->intValue());
p> }
p> else if(typestr->isEqual(CCString::create("bool")))
p> {
p> lua_pushboolean(ls, strnr->boolValue());
p> }
p>复制代码
p>大家使用的时候注意匹配一下这个就行;
p>
p>那又人问了,如果在Lua中访问C++函数怎么办呢?还记得我文章第一篇中得Lua调用C++函数类的方法呢?
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>