Cocos2d-x教程 Lua指令碼(1) 如何在Cocos2d-x中使用Lua指令碼
歡迎加入Cocos2d-x 交流群:193411763
歡迎轉載,轉載時請註明原文出處 http://blog.csdn.net/u012945598/article/details/17162697
原始碼下載地址:http://download.csdn.net/detail/u012945598/6668417
筆者使用的是Cocos2d-x的2.21版本,Xcode 5.0開發環境,同時也建議大家使用Cocos2.20以上版本,若由於版本原因原始碼無法執行,可將Classes檔案拷貝出來,在新建的專案中將Classes資料夾替換進去,.lua檔案在Resources資料夾中。
有關Lua指令碼語言的基本語法講解請參考 :http://blog.csdn.net/u012945598/article/details/17116939
關於Cocos2d-x 2.20以上版本如何建立基於Lua的專案請參考:http://blog.csdn.net/u012945598/article/details/17115875
如果以上兩點都沒有問題,那麼我們正式進入Cocos2d-x中使用Lua指令碼的教程
首先,建立一個基於Lua的專案,筆者命名為MyLua。專案建立好之後,執行專案,我們會發現其實這個專案就是sample資料夾中的hellolua的Demo,在我們學會如何使用Lua之前,我們先來分析一下2d-x中為我們提供的這個案例。
看一下AppDelegate.cpp中 boolAppDelegate::applicationDidFinishLaunching()函式中的程式碼,這段程式碼講述的時如何初始化指令碼引擎,筆者已經將註釋都寫在了下面,如下圖所示:
這段程式碼幾乎可以成為固定模式,如果需要使用Lua指令碼語言開發一個專案,那麼這段程式碼可以直接貼上複製重新利用,因為這段程式碼中並不涉及到與遊戲相關的任何內容。
有了上面的程式碼實際上就已經可以使用Lua指令碼了,下面筆者將通過一個Demo講解如何通過Cocos2d-x與Lua通訊。
新建一個類檔案命名為newScene,.h檔案的程式碼如下:
可以看出newScene是一個場景,裡面有一個init函式。
.cpp檔案的程式碼如下,相關注釋已在程式碼中註明:
在程式碼中我們看到了一個myLua.lua的檔案,這個檔案中實際上只有兩行程式碼,我們來看一下:
筆者使用的TextMate編輯器,關於編輯器大家可以自行選取,編輯好文字後將字尾加上 .lua即可。
看一下輸出結果:
第一行:返回0代表成功
第二行:判斷棧頂是否為string型別,返回1代表成功
第三行:從Lua指令碼中讀取一個字串
第四行:從Lua指令碼中讀取了一個整數
第五行:將棧頂元素刪除後的結果。