在c/c++中整合lua
1、把lua.c、makefile、luac.c這幾個檔案刪除
2、對於xcode如果出現報錯的情況處理,在lua的資料夾中檢視解決辦法
從c/c++專案中讀取lua中的變數
lua_getglobal(l, "name")--直接把數字放到棧頂
if(lua_isnumber(l, -1))
int width = (int)lua_tonumber(l, -1)--isstring和isnumber 不是幫你轉化而是幫你檢查是否能轉化成字串和數字
其他的都是類似的;bool string
從c/c++專案中讀取lua中的函式的方式:
學習呼叫無參無返回值函式
學習呼叫有參無返回值 注意多引數的情況是先入棧的後呼叫
學習呼叫無參有返回值 返回值就在棧頂,刻意直接獲取
學習呼叫有參又返回值
學習呼叫多返回值的函式 多返回值第乙個返回值是-2,因為他是第乙個返回然後被壓入棧頂,後來又被下乙個返回值壓入棧頂
呼叫lua函式的方式
pcall函式和獲取棧值的注意
lua_pcall(m_pcall,n,r,f)//n 引數的個數,r 結果的個數,f失敗的返回值
lua_pcall的引數進行設定;
注意下面一般熟用的是assert()進行
讀取lua中的table和遍歷table
lua_getglobal(l,"name")
if(lua_istable(l, -1))
char* getfiled(lua_state*l , const char* key)
}從lua中呼叫c函式入門:
編寫乙個供lua呼叫的函式
static int l_getname(lua_state* l)
lua_pushcfunction(m_pluastate, l_getname);
lua_setglobal(m_pluastate,"getmyname");
lual_dofile(m_pluastate,"my.lua");
lua_pcall(m_pluastate,0,0,-1);
然後在lua中呼叫getmyname這個函式就可以了;
深入理解編寫c函式
1.理解供lua呼叫函式的原理
2.熟練編寫有引數的c函式的編寫
3.熟練編寫多返回值的c函式供lua使用
4.熟練編寫返回table的函式供lua使用
實現滑鼠與遊戲的互動(與遊戲中的物品互動)
我們這裡用到的是射線中的滑鼠螢幕射線 screenpointtoray 射線 ray ray new ray position startposition,position endposition 返回滑鼠座標 input,mouseposition 以上部分可參考開發者文件 拿到滑鼠在螢幕的射線 ...
C 與Lua互動,lua環境配置
1.新建控制台專案 2.勾選空專案,靜態庫。2.標頭檔案匯入原始碼中的全部.h 標頭檔案,原始檔匯入原始碼的的.c檔案,除 lua.c 和 luac.c外 3.編譯生成lib 1.新建控制台專案,專案 屬性 c c 常規 附加包含目錄 新增lua原始檔所在的目錄 2.鏈結器 常規 附加庫目錄 新增 ...
lua與C互動(3) 與lua表的簡單互動
c讀取lua表中字段的值。lua print print from test lua.name linxing age 19 list list.width 190 list.height 540 list.title rectangle cc include include include inc...