欢迎加入 Cocos2d-x 交流群: 193411763
转载时请注明原文地址:http://blog.csdn.net/u012945598/article/details/18224001
源码下载地址:http://download.csdn.net/detail/u012945598/6844137
Lua API参考手册:http://www.codingnow.com/2000/download/lua_manual.html
以下API是此项目中需要用到的:
lua_getglobal (lua_State *L, const char *name):把全局变量 name 里的值压入堆栈。
lua_gettable (lua_State *L, int index):把 t[k] 值压入堆栈, 这里的 t 是指有效索引 index 指向的值, 而 k 则是栈顶放的值。
lua_isstring (lua_State *L, int index):当给定索引的值是一个字符串或是一个数字(数字总能转换成字符串)时,返回 1 ,否则返回 0 。
lua_next (lua_State *L, int index):从栈上弹出一个 key(键), 然后把索引指定的表中 key-value(健值)对压入堆栈 (指定 key 后面的下一 (next) 对)。
lua_pushstring (lua_State *L, const char *s):把指针 s 指向的以零结尾的字符串压栈。
lua_pushnil (lua_State *L):把一个 nil 压栈。
lua_pop (lua_State *L, int n):从堆栈中弹出 n 个元素。
lua_tolstring (lua_State *L, int index):将索引index指向的值转换为string类型。
笔者的IDE Xcode 5.0+Cocos2d-x-2.2.2
下面我们将要做的是,将一个.lua文件中的table变量中的所有元素存放到Cocos2d-x 中的CCDictionary对象中,.lua文件中内容如下:
luaTable={age = 3,name="Reventon",sex="男",skill={"Lua","c++","oc"},type={type1="master",type2="monster"},state={"happy","angry"}}
新建一个基于Lua的项目,命名为Reventon,(项目创建方法请参考:http://blog.csdn.net/u012945598/article/details/17115875)
新建一个cpp文件,命名为LTData。
首先我们需要引入访问Lua所需要的头文件,并在LTData.h文件中添加如下代码:
LTData.cpp文件代码:
下面我们在AppDelegate.cpp中引入LTData.h头文件,然后在applicationDidFinishLaunching()中加入如下代码测试:
我们将词典中的所有内容全部导了出来并进行输出,最终控制台结果如下:
与myLua.lua文件中内容一致: