cocos2d-x + Lua(2) C++和lua数据通讯之间的互调(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:17 点击:

p>    lua_pushstring(ls, keyName);

p>    lua_gettable(ls, -2);

p>    const char* valueString = lua_tostring(ls, -1);

p>    

p>    lua_pop(ls, -1);

p>    

p>    return valueString;

p>}

p>//执行Lua表,返回表结构

p>const char* PublicSendLuaData::getLuaVarTable(const char* luaFileName,const char* varName){

p>    lua_State*  ls = CCLuaEngine::defaultEngine()->getLuaStack()->getLuaState();

p>    

p>    int isOpen = luaL_dofile(ls, getFileFullPath(luaFileName));

p>    if(isOpen!=0){

p>        CCLOG("Open Lua Error: %i", isOpen);

p>        return NULL;

p>    }

p>    

p>    lua_getglobal(ls, varName);

p>    

p>    int it = lua_gettop(ls);

p>    lua_pushnil(ls);

p>    

p>    string result="";

p>    

p>    while(lua_next(ls, it))

p>    {

p>        string key = lua_tostring(ls, -2);

p>        string value = lua_tostring(ls, -1);

p>        

p>        result=result+key+":"+value+"\t";

p>        

p>        lua_pop(ls, 1);

p>    }

p>    lua_pop(ls, 1);

p>    

p>    return result.c_str();

p>}

p> 

p>//带参执行Lua方法有返回值

p>const char* PublicSendLuaData::callLuaFuncParReturn(const char* luaFileName,const char* functionName,CCArray* arraypar,CCArray* arraypartype){

p>    lua_State*  ls = CCLuaEngine::defaultEngine()->getLuaStack()->getLuaState();

p>    

p>    int isOpen = luaL_dofile(ls, getFileFullPath(luaFileName));

p>    if(isOpen!=0){

p>        CCLOG("Open Lua Error: %i", isOpen);

p>        return NULL;

p>    }

p>    

p>    lua_getglobal(ls, functionName);

p>    int countnum = arraypar->count();

p>    if(countnum>0)

p>    {

p>        for (int i = 0; i<arraypar->count(); i++) {

p>            CCString* typestr = (CCString*)arraypartype->objectAtIndex(i);

p>            CCString* strnr = (CCString*)arraypar->objectAtIndex(i);

p>            if(typestr->isEqual(CCString::create("string")))

p>            {

p>                lua_pushstring(ls, strnr->getCString());

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

推荐热点

  • 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