美思 [Lua] 程式設計教學

有鑑於 Lua 學習資源的相對缺乏,故筆者撰寫此系列教學文件。本系列文章專注於 Lua 程式設計本身,而非 Solar2D 或 Cocos2d-x 或其他的 Lua 應用程式設計。

由於 Lua 是內嵌語言,Lua 程式設計會分為 Lua 程式語言和 Lua C API 兩方面;前者是學習 Lua 語法來寫程式,後者則是使用 Lua C API 將 Lua 直譯器嵌在宿主軟體 (host software)。我們目前以 Lua 語法為主,日後有機會再加入 Lua C API 的介紹。

本系列文章以網頁的方式來呈現,如果讀者比較喜歡讀實體書籍,可參考 Programming in Lua

除了 Lua 本身,我們另外提供 Solar2D 的教學。Solar2D (原 Corona SDK) 是一套以 Lua 為腳本語言的遊戲引擎 (game engine),歡迎有需要的讀者前往觀看。

[Lua] 程式設計教學:分裂的 Lua 世界

Lua 不是一個主流的語言,不過還蠻常見的,主要用於遊戲引擎和其他軟體的腳本語言。本文的目的在說明 Lua 的特性及這些特性對 Lua 社群的影響。 繼續閱讀

[Lua] 程式設計教學:建置開發環境

由於 Lua 是內嵌語言,如果讀者使用 Corona SDK 或其他的遊戲引擎的話,這些遊戲引擎就會內嵌 Lua 直譯器,不需另外安裝。本文以讀者要學習 繼續閱讀

[Lua] 程式設計教學:變數 (Variable) 和資料型別 (Data Type)

在本文中,我們介紹幾個 Lua 程式的基本概念,包括變數、資料型別等。 繼續閱讀

[Lua] 程式設計教學:使用運算子 (Operator)

在程式設計中,運算子 (operator) 多使用符號來撰寫,較少使用文字。由於運算子通常無法再化簡,我們將運算子視為該程式語言的基本指令,使用運算子用組合出更複雜的功能。本文介紹 Lua 可用的運算子。 繼續閱讀

[Lua] 程式設計教學:使用控制結構 (Control Structure) 改變程式運行過程

在預設情形下,程式碼由上往下依序執行。控制結構 (control structure) 用於改變程式進行的順序。本文介紹 Lua 可用的控制結構。 繼續閱讀

[Lua] 程式設計教學:使用表 (table)

表 (table) 是 Lua 唯一的資料結構,在 Lua 內部的實作上,表帶有雜湊表 (hash table) 和陣列 (array) 兩種資料結構,Lua 繼續閱讀

[Lua] 程式設計教學:撰寫和使用函式 (Function)

函式 (function) 將某段程式碼區塊包裝起來,並給予命名,該程式碼區塊就成為一個有意義的實體。函式可以重覆再利用,也是物件導向和模組的基礎。本文介紹函式本身,其他概念留至後文介紹。 繼續閱讀

[Lua] 程式設計教學:撰寫函數式程式 (Functional Programming)

函數式程式 (functional programming) 的前提在於函式是第一階物件 (first-class objects),簡單地說,函式也可以是值 繼續閱讀

[Lua] 程式設計教學:撰寫基於物件的 (object-based) 程式

Lua 的物件系統 (object system) 是以原型 (prototype) 為基礎,和一般 Java 或 Python 等以類別 (class) 為基礎的物件系統略為不同。 繼續閱讀

[Lua] 程式設計教學:多型 (Polymorphism) 相關的議題

由於 Lua 是動態型別語言,不需要像 Java 等語言,利用子型別 (subtyping) 來達到多型的效果,使用內建的語法機制即可達到相同的效果。 繼續閱讀