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++函数类的方法呢?

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1