歡迎加入 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文件中內容一致: