1. 程式人生 > >Cocos2d-x教程 Lua指令碼(1) 如何在Cocos2d-x中使用Lua指令碼

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指令碼中讀取了一個整數

第五行:將棧頂元素刪除後的結果。