原创 Lua 基礎之擴展應用程序

在 c 中使用 lua 擴展應用程序 是指以 c 語言爲主導,在 c 代碼中調用 lua 代碼,一種常見的方式是可以把 lua 文件當作配置文件,然後在 c 程序中加載解析 配置文件 config.lua 定義了一個窗口的相關屬

原创 shell 腳本編程之邏輯運算符

邏輯運算符 和大多數語言一樣,shell 的邏輯運算符有與或非三種,不同的是 shell 有兩套邏輯運算符。 第一套,測試內作邏輯運算 邏輯運算符 說明 [ ! expression ] 邏輯非 [ expres

原创 使用 TexturePacker 進行資源加密

導出 pvr 格式 TexturePacker 可以導出的圖片格式有很多種,除了常見的 png,jpg,bmp,ttif,tga 之外,還可以導出 pvr,pvr+gzip(pvr.gz),pvr+zlib(pvr.ccz)。pv

原创 shell 腳本編程之算術運算符

基本算術運算符 shell 的算術運算符只支持整數,浮點數的運算結果會被轉換成整數。算術運算符包括 + - * \ % **(冪運算) += -= *= \= %= ++ – <<(位左移) >>(位右移) &(按位與) |(按位

原创 shell 腳本編程之引用

四種引用符 shell 中字符分爲兩種,一種是普通字符,另一種是元字符(meta)。元字符是 shell 的保留字符,在 shell 中有着特殊的意義。引用是指將字符串用某種符號括起來,以防止特殊字符被解析成其它意思。shell

原创 Lua 基礎之面向對象編程

對象 lua 中的 table 其實就是對象,理由如下 1. table 與對象一樣可以擁有狀態 2. table 與對象一樣擁有一個獨立於其值的標識 self,值相同的兩個 table 是兩個不同的對象 3. table

原创 shell 腳本編程之條件語句

if 判斷結構 if 判斷的結構如下 if condition; then command elif condition; then command else command fi 要特別注意的是 cond

原创 shell 腳本編程之函數

函數定義和調用 function FUNCNAME() { } 函數的定義很簡單,可以看到和 c 語言的函數定義方式很相似。function 關鍵字可以省略,省略之後的函數定義跟 c 語言相比就是少了函數返回類型而已。函數調用就

原创 Lua 之使用 VS 生成解釋器、編譯器和鏈接庫

鏈接庫、解釋器和編譯器 lua 是開源的,我們可以從官網下載源代碼,其源代碼是用純 c 寫的,因此如果想要在 c 項目中嵌入 lua 代碼很簡單,只需要把 lua 的源代碼包含到 c 項目裏面即可。但這肯定不是最好的方式,更好的方

原创 shell 腳本編程之循環語句

for 循環 帶列表的 for 循環 for VAR in list do command done for 循環會遍歷列表的每一項,逐項賦給變量 VAR,然後對變量 VAR 進行操作。shell 的列表很隨意,幾個項之間

原创 Lua 基礎之模塊

模塊 模塊系統的設計目標是可以使用不同的方式來共享代碼,一個模塊就是一個代碼庫,其它模塊 可以使用 require 函數來加載,加載後得到模塊導出的所有東西,如函數、常量、全局變量等。一個比較好的方式是讓模塊返回一個 table

原创 Lua 基礎之 Lua 程序

lua 調用 c 函數 lua 調用 c 函數與 c 調用 lua 函數一樣,都是通過 CAPI 和一個棧來實現,lua 調用 c 函數有以下幾個步驟 1. 在 c 代碼中定義函數 lau.h 中定義了要註冊到 lua 中的

原创 shell 腳本編程之比較運算符

測試 測試是用於判斷某個條件是否成立,比如測試某個文件是否存在,測試兩個字符串是否相等。要特別注意的是,shell 中返回 0 代表測試成功;條件語句、循環語句等結構經常會以“真假”爲判斷條件,shell 用字符串 true 來表

原创 Cocos2d-x 之使用 TexurePacker+Cocos Studio 協同工作

寫在前面 Cocos Studio 是 cocos2d-x 一個比較好用的編輯器,我們常用它來搭建場景 UI,導出場景文件和資源,然後在代碼中直接加載場景文件。一般導出場景文件的時候會連同資源一起導出,場景文件保存了資源的讀取方式

原创 Lua 基礎之協同程序

協同程序 協同程序類似於多線程中的線程。lua 提供 非對稱的協同程序 ,即 lua 提供兩個函數來控制協同程序的執行,一個用於掛起執行,另一個用於恢復執行。 協同程序的函數放置在表 coroutine 中,創建時傳入一個函數,