Lua遊戲指令碼開發之初始化Lua

來源:互聯網
上載者:User

Lua遊戲指令碼開發之初始化Lua是本文要介紹的內容,主要是來學習LUA的使用和LUA中關於遊戲的開發,具體內容的實現來看本文詳解。

我最近學習遊戲指令碼編程。接觸到的第一個指令碼程式設計語言就是Lua。我使用的Lua版本是5.1。

遺憾的是,我學習指令碼編程的那本書中使用的版本是老版本的Lua,由於Lua在新版本中,對很多函數調用作了改變,我發現根據書中的介紹,很難成功地編譯器。經過自己的研究,終於可以正常地使用Lua提供的準系統了。所以我把我的解決方案寫出,和大家分享,希望對其他使用新版本Lua遇到麻煩的朋友有所協助。

下載安裝好Lua後,就可以使用了。我使用Visual Studio .NET 2003的C++編譯器開發應用Lua指令碼的Host應用程式。首先,我們要設定編譯器,讓它能夠找到使用Lua必須的標頭檔和庫檔案。方法如下:

1、啟動Visual Studio .NET 2003。

2、選擇“工具”-〉“選項”菜單,開啟“選項”對話方塊。

3、在右邊的選項中,選擇“項目”,然後選擇其下的“VC++目錄”。

4、在對話方塊右邊的“顯示以下內容的目錄”下拉框中選擇“包含檔案”。然後添加Lua的包含目錄,在我的電腦中目錄是“C:/Program Files/Lua/5.1/Include”。

5、在對話方塊右邊的“顯示以下內容的目錄”下拉框中選擇“庫檔案”。然後添加Lua使用的庫檔案所在目錄,我的是“C:/Program Files/Lua/5.1/Lib”。

6、點擊“確定”,關閉對話方塊。

現在,編譯器已經設定完畢。我們就以一個Console控制台程式來示範Lua的初始化:

1、建立一個C++控制台項目。

2、選擇“項目”-〉“屬性”菜單,開啟項目的屬性對話方塊,然後選擇“連接器”下面的“命令列”選項,然後在右下角地區輸入使用的庫檔案lua51.lib和lua5.1.lib。然後點擊“確定”。

3、為了使用Lua中的函數,我們需要在程式的原始碼檔案中包含Lua的標頭檔——lua.h和lauxlib.h。因為Lua使用純C代碼編寫,所以我們要用下面的方式來包含這兩個標頭檔到我們的C++程式中:

 
  1. extern "C"  
  2. {  
  3. include "lua.h"  
  4. include "lauxlib.h" // 必須包含這個標頭檔,否則無法調用lua_open()函數  

要使用Lua,首先要對它初始化。初始化一個Lua,個人的理解,其實就是初始化一個Lua使用的堆棧,主程式和遊戲指令碼通過這個堆棧互相通訊。我們只要在主程式的Main()函數中調用如下代碼即可初始化一個Lua堆棧:

 
  1. int _tmain(int argc, _TCHAR* argv[])  
  2. {  
  3.  // 初始化一個Lua state並設定堆棧尺寸是1024  
  4.  lua_State* pLuaState = lua_open(1024);  
  5. return 0;  

使用完Lua後,應該調用如下代碼釋放掉Lua對象:

 
  1. lua_close(pLuaState); 

完整的程式如下:

 
  1. int _tmain(int argc, _TCHAR* argv[])  
  2. {  
  3.  // 初始化一個Lua state並設定堆棧尺寸是1024  
  4.  lua_State* pLuaState = lua_open(1024);  
  5. // ... 所有的程式邏輯代碼在這裡寫  
  6. // 釋放Lua state  
  7. lua_close(pLuaState);   
  8. return 0;  

小結:Lua遊戲指令碼開發之初始化Lua的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.