『壹』 為什麼將lua作為游戲腳本
就我個人的理解來看,使用LUA作為腳本語言有三個好處:
1、輕量級
LUA只包括一個精簡的核心和最基本的庫。這使得LUA體積小、啟動速度快,從而適合嵌入在別的程序里。
2、可配置性、可擴展性
LUA並不象其它許多"大而全"的語言那樣,包括很多功能,比如網路通訊、圖形界面等。但是LUA可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,LUA可以使用它們,就像是本來就內置的功能一樣。
3、兼容性
LUA由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。
這些都是LUA本身所具備的一些特質。而這些特質正好就決定了LUA的廣泛使用:
1、輕量級
沒人希望自己的應用程序需要附加幾十M甚至幾百M的庫類文件才能運行。如果一個應用程序這么做了,那麼它很難做到Run Anywhere。當然,這個Run Anywhere只是這么一說。
2、可配置性、可擴展性
在游戲研發的過程中,修改是必不可少的過程。如果每次修改都需要從底層做起,那必定是一個非常繁瑣的過程。而LUA的可配置、擴展正好可以解決這一問題。
3、兼容性
游戲只是游戲,不能決定玩家的機器配置,更不能決定玩家的操作系統。如果因為游戲與用戶的操作系統不兼容導致游戲銷量下降,我想,這肯定是不被允許的。
所以,具備了以上三個特點的LUA,沒有不作為游戲腳本使用的理由。
『貳』 lua編程器
Lua是一個擴展式程序設計語言,它被設計成支持通用的過程式編程,並有相關數據描述的設施。
Lua也能對面向對象編程,函數式編程,數據驅動式編程提供很好的支持。它可以作為一個強大、輕量的腳本語言,供任何需要的程序使用。
Lua以一個用CleanC寫成的庫形式提供。(所謂CleanC,指的ANSIC和C++中共通的一個子集)。
LUA腳本編程器主要特點
1、可擴展性。Lua的擴展性非常卓越,以至於很多人把Lua用作搭建領域語言的工具。Lua被設計為易於擴展的,可以通過Lua代碼或者C代碼擴展,Lua的很多功能都是通過外部庫來擴展的。Lua很容易與C/C++、Java、Fortran、Smalltalk、Ada,以及其他語言介面。
2、簡單。Lua本身簡單,小巧;內容少但功能強大,這使得Lua易於學習,很容易實現一些小的應用。他的完全發布版(代碼、手冊以及某些平台的二進制文件)僅用一張軟盤就可以裝得下。
『叄』 Lua 是怎樣一門語言
Lua是一個簡潔、輕量、可擴展的腳本語言。Lua有著相對簡單的CAPI而很容易嵌入應用中。很多應用程序使用Lua作為自己的嵌入式腳本語言,以此來實現可配置性、可擴展性。
Lua是一種輕量語言,它的官方版本只包括一個精簡的核心和最基本的庫。這使得Lua體積小、啟動速度快。
它用ANSI C語言編寫,並以源代碼形式開放,編譯後的完整參考解釋器只有大約247kB,到5.4.3版本,該體積變成283kB(Linux,amd64),依然非常小巧,可以很方便的嵌入別的程序里。和許多「大而全」的語言不一樣,網路通信、圖形界面等都沒有默認提供。
但是Lua可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能一樣。事實上,現在已經有很多成熟的擴展模塊可供選用。
Lua是一個動態類型語言,支持增量式垃圾收集策略。有內建的,與操作系統無關的協作式多線程支持。Lua原生支持的數據類型很少,只提供了數值(默認是雙精度浮點數,可配置)、布爾量、字元串、表格、函數、線程以及用戶自定義數據這幾種。
但是其處理表和字元串的效率非常之高,加上元表的支持,開發者可以高效的模擬出需要的復雜數據類型(比如集合、數組等)。
Lua是一種多重編程范型的程序設計語言:它只提供了很小的一個特性集合來滿足不同編程范型的需要,而不是為某種特定的編程范型提供繁雜的特性支持。
例如,Lua並不提供繼承這個特性,但是你可以用元表格來模擬它。諸如名字空間、類這些概念都沒有在語言基本特性中實現,但是我們可以用表格結構(Lua唯一提供的復雜數據結構)輕易模擬。正是提供了這些基本的元特性,我們可以任意的對語言進行自需的改造。
Lua實現了少量的高級特徵比如頭等函數、垃圾回收、閉包、正當尾調用、強制(於運行時間在字元串和數值之間自動轉換)、協程(協作多任務)和動態模塊裝載。
實現
Lua程序不是從文本式的Lua文件直接解釋的,而是編譯成位元組碼,接著把它運行在Lua虛擬機上。編譯過程典型的對於用戶是不可見並且是在運行時間進行的,但是它可以離線完成用來增加裝載性能或通過排除編譯器來減少對宿主環境的內存佔用。
Lua位元組碼還可以在Lua之內產生和執行,使用來自字元串庫的mp函數和load/loadstring/loadfile函數。Lua版本5.3.4是用大約24,000行C代碼實現的。
像大多數CPU,而不像多數虛擬機(它們是基於堆棧的),Lua VM是基於寄存器的,因此更加類似真實的硬體設計。寄存器架構既避免了過多的值復制又減少了每函數的指令的總數。Lua 5的虛擬機是第一個廣泛使用的基於寄存器的純VM。
Parrot和Android的Dalvik是另外兩個周知的基於寄存器的VM。PCScheme的VM也是基於寄存器的。
『肆』 Lua是什麼編程語言
Lua 是一個小巧的腳本語言。 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。Lua由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。Lua並沒有提供強大的庫,這是由它的定位決定的。Lua 有一個同時進行的JIT項目,提供在特定平台上的即時編譯功能。
Lua腳本可以很容易的被C/C++代碼調用,也可以反過來調用C/C++的函數,這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,ini等文件格式,並且更容易理解和維護。 Lua由標准C編寫而成,代碼簡潔優美,幾乎在所有操作系統和平台上都可以編譯,運行。一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。
『伍』 lua腳本語言的概念解釋
Lua 教程
lua
Lua 是一種輕量小巧的腳本語言,用標准C語言編寫並以源代碼形式開放, 其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。
Lua 是巴西里約熱內盧天主教大學(Pontifical Catholic University of Rio de Janeiro)里的一個研究小組於 1993 年開發的,該小組成員有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
設計目的
其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。
Lua 特性
輕量級: 他用標准C語言編寫並以源代碼形式開放,編譯後僅僅一百餘K,可以很方便的嵌入別的程序里。
可擴展: Lua提供了非常易於使用的擴展介面和機制:由宿主語言(通常是C或C++)提供這些功能,Lua可以使用它們,就像是本來就內置的功能一樣。
其它特性:
支持面向過程(procere-oriented)編程和函數式編程(functional programming);
自動內存管理;只提供了一種通用類型的表(table),用它可以實現數組,哈希表,集合,對象;
語言內置模式匹配;閉包(closure);函數也可以看作一個值;提供多線程(協同進程,並非操作系統所支持的線程)支持;
通過閉包和table可以很方便地支持面向對象編程所需要的一些關鍵機制,比如數據抽象,虛函數,繼承和重載等。
Lua 應用場景
游戲開發
獨立應用腳本
Web 應用腳本
擴展和資料庫插件如:MySQL Proxy 和 MySQL WorkBench
安全系統,如入侵檢測系統
第一個 Lua 程序
接下來我們使用 Lua 來輸出"Hello World!"
實例(Lua 5.3)
print("Hello World!")