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

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

p>    

p>    

p>private:

p>    

p>    static bool _isFirst;

p>    static PublicSendLuaData* m_instance;

p>    const char* getFileFullPath(const char* fileName);

p>    ~PublicSendLuaData();

p>};

p> 

p>#endif

p>复制代码

p>PublicSendLuaData.cpp

p> 

p>复制代码

p>//  PublicSendLuaData.cpp

p>//

p>//  Created by ZISOU-YSJ

p>//

p>//  Lua and C++/c 交互类

p> 

p>#include "PublicSendLuaData.h"

p>#include "CCLuaEngine.h"

p> 

p>PublicSendLuaData* PublicSendLuaData::m_instance = NULL;

p>PublicSendLuaData* PublicSendLuaData::getInstance(){

p>    if(!m_instance)

p>    {

p>        

p>        m_instance = new PublicSendLuaData();

p>    }

p>    return m_instance;

p>}

p>//获取变量名值

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

p>    

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_settop(ls, 0);

p>    lua_getglobal(ls, varName);

p>    

p>    int statesCode = lua_isstring(ls, 1);

p>    if(statesCode!=1){

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

p>        return NULL;

p>    }

p>    

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

p>    lua_pop(ls, 1);

p>    

p>    return str;

p>}

p> 

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

p>    

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 statesCode = lua_istable(ls, -1);

p>    if(statesCode!=1){

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

p>        return NULL;

p>    }

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