1、為什麼使用Lua?
這個問題很多大牛前輩都回答過它的用處,現實遊戲開發情況也可以證明它的廣泛使用。知乎上《Lua 為什麼在遊戲編程領域被廣泛運用》,開源社區《為什麼我選擇 Lua ?》等等,都充分肯定了Lua的強大及其前景,免費小巧快速易移植,更重要的是其易擴充性使得Lua非常適合開發遊戲,大話西遊2、 魔獸世界Wow外掛程式、劍俠情緣3等等都是用Lua語言。不過不用擔心,強大的Lua卻是比較容易學習上手,可深入講的東西並不多,市面專門講Lua的中文書籍也很少。《Program in Lua》、譯本《Lua遊戲開發實踐指南》等都是很經典的書。
2、遊戲項目中的Lua(此處摘自《Lua遊戲開發實踐指南》)
·編輯遊戲的使用者介面
·定義、儲存和管理基礎遊戲資料
·管理即時遊戲事件
·建立和維護開發人員友好的遊戲儲存和載入系統
·編寫遊戲的人工智慧系統
·建立功能原型,可以之後用高效能語言移植
3、Lua環境搭建
Lua幾乎可以在所有作業系統和平台上都可以編譯,運行,Lua並沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程式的語言。Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能。Lua核心小於120KB,當編譯和整合到遊戲開發系統中時非常小巧。下面簡單地介紹一下Lua環境的搭建: ①linux環境下: 首先到Lua官方網站(http://www.lua.org/download.html)下載最新的Lua原始碼,目前最新的是lua-5.2.3,得到的是一個.tar.gz。 其次,使用tar -xzvf /path-to-your-lua-tar-file-folder/lua-5.2.3.tar.gz命令解壓縮,將得到一個lua-5.2.3檔案夾。 之後,使用cd /path-to-your-lua-tar-file-folder/lua-5.2.3將當前工作目錄切換到lua-5.2.3檔案夾中。運行make命令,你將看到如下提示: Please do make PLATFORM where PLATFORM is one of these: aix ansi bsd freebsd generic linux macosx mingw posix solaris See INSTALL for complete instructions. 如果你的系統平台名稱是否在支援的列表中,如果存在則繼續運行make PLATFORM命令,否則選擇運行make linux命令,一般情況下編譯都是成功的。最後,運行make install命令。至此,lua語言環境已經順利安裝完成,在終端下輸入lua命令即可進入!之後可以下載一個Lua編輯器(LuaEdit)。 ②Windows環境下: 下載LFW(Lua for Windows)版的,地址:(https://code.google.com/p/luaforwindows/),lua for windows其實是一整套Lua的開發環境,它包括: Lua Interpreter(Lua解譯器) Lua Reference Manual(Lua參考手冊) Quick Lua Tour (Lua快速入門) Examples (Lua範例) Libraries with documentation (一些Lua庫和文檔) SciTE (一個很棒的多用途編輯器,已經對Lua做了特殊設定) 它整合了在windows學習和開發Lua所需要的所有東西,非常適合新手,附帶的SciTE只要經過簡單配置就能夠很方便的編寫Lua程式,編譯,運行,調試。 如果需要結合VC++6.0來使用,這裡又有兩種方法: 1)這種比較方便,利用之前下載的FLW,在VC6.0的菜單裡找到【工具】-【選項】-【目錄】選項卡,然後把對應的 .h 檔案和 .lib 檔案給添加進去,路徑就是下載FLW的安裝路徑下的include和lib檔案夾,這樣就行了。可以使用SciTE建立一個lua檔案,在VC++裡面開啟載入,或者調用其某個函數。如下代碼:
#include<stdio.h>#include<process.h> extern "C" {#include "lua.h"#include <lauxlib.h>#include <lualib.h>} #pragma comment(lib,"lua5.1.lib") int main (void){ // 開啟 Lua lua_State *L = lua_open(); // 載入 .lib 檔案 luaL_openlibs(L); // 載入指令檔,需要放在程式目錄 luaL_dofile( L, "test.lua" ); lua_resume( L, 0 ); // 調用結束 lua_close(L); system("pause"); return 0;} 2)如果不想下載LFW,就需要自己編譯Lua庫和配置開發環境。下載最新的Lua原始碼,得到一個.tar.gz,用壓縮軟體來解開。解開的目錄中有一個src目錄,整個Lua核心代碼就在這裡了。用VC++6.0來產生lib檔案,在VC6中建立一個Win32 StaticLibrary靜態庫工程,工程名稱比如設定為mylua,工程路徑指向Lua的src目錄,在隨後的工程設定嚮導中,不用加入任何設定,即,不要勾選“先行編譯的標頭檔”和“MFC支援”選項。 接下來,將所有src中的所有.c (lua.c除外)和.h 檔案加入到工程中,編譯,就可以得到我們想要的靜態庫mylua.lib 檔案了。自己建立新項目時,只需要加入mylua.lib和幾個標頭檔就可以開發了,網上大神推薦,把這些檔案整理一下,放到合適的位置較好。先是建立include目錄,然後在include目錄下建立lua目錄,將下列檔案複製到lua目錄下: lauxlib.h lua.h luaconf.h lualib.h建立和include目錄同級的lib目錄,將編譯好的 liblua.lib 放到這裡即可。 可以使用記事本或Sublime Text建立lua檔案,在VC++裡面開啟載入,或者調用其某個函數,同上。我們也可以用這個方法自己寫個Lua控制台。共用代碼如下:http://download.csdn.net/detail/hejiero/6900023