1 初窺Lua

來源:互聯網
上載者:User

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    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.