作者: 楊粼波
Email: tx7do@yahoo.com.cn 首先需要安裝lua,Windows下自然是安裝Lua For Windows咯,下載地址:
http://code.google.com/p/luaforwindows/安裝以后它已經包含了luadoc,所以無需我們再去下載,如果非要去下載的話,那么下載地址是:
http://luadoc.luaforge.net/。
然后,我們需要準備一個批處理文件,叫啥名字無所謂,我是取名叫做buildDoc.bat的,我用doxygen的時候也是叫這個名字的,以下是批處理文件的內容:
@echo on
lua.exe "%LUA_DEV%\lua\luadoc_start.lua" -d "Docs" *
pause
它做了什么呢?它調用了lua.exe執行了luadoc_start.lua這個腳本,傳入的參數-d "Docs"的意思是生成的文檔文件夾(輸出路徑),如果沒有則是生成在批處理文件當前路徑。第二個參數是需要生成文檔的lua腳本文件列表(輸入文件),不過我們可以傳入了一個*,它會自動解析生成的,讓它遍歷當前路徑的lua文件以及當前路徑下面所有的子文件夾的lua文件。
有了這個批處理文件,這個時候我們就可以生成lua的文檔了,只需要鼠標輕輕一點就可以了。^_^
以下給出一點lua腳本的示例:
--- 測試用表
-- @class table
-- @name p_GlobalOptions
-- @field opt1 字段1
-- @field opt2 字段2
local p_GlobalOptions = {
opt1 = nil,
opt2 = nil,
}
這是一個表的簡單示例,其中
-- @class table
是表明其類型是一個表,
-- @name
p_GlobalOptions是表名,
-- @field opt1 字段1
說明第一個字段是什么。
-- @field opt2 字段2
說明第二個字段是什么。
--------------------------------------------------------------------------------------
-- @name test
-- @description 嗯。。。這是一個測試方法的方法
-- @param param1 參數1
-- @param param2 參數2
-- @return 沒有返回值哦
-- @usage test()
-- @see p_GlobalOptions
--------------------------------------------------------------------------------------
function test(param1, param2)
end
-- @param param1 參數1
說明參數1;
-- @return 沒有返回值哦
說明了返回值
-- @usage test()
這里是給出一個示例代碼來;
-- @see p_GlobalOptions
可以生成一個超鏈接,表明這個方法和p_GlobalOptions是有關,你可以去查看。
其實還可以改改這么寫:
--------------------------------------------------------------------------------------
-- @class function
-- @name test
--------------------------------------------------------------------------------------
-- @description 嗯。。。這是一個測試方法的方法
-- @param param1 參數1
-- @param param2 參數2
-- @return 沒有返回值哦
-- @usage test()
-- @see p_GlobalOptions
--------------------------------------------------------------------------------------
即,表明其類型是一個function,名字叫做test。
@class有三個參數:
function, table 和 module。分別表示是:方法,表和模塊。
具體文檔請參見: http://luadoc.luaforge.net/manual.html
-------------------------------------------------------------------------------------------------------------
來點閑話,最近工作已經放到了使用lua做開發上面去了,沒辦法,廣州這邊的游戲公司基本上都是用腳本做大部分事情。
至于為什么要這樣倚重腳本,無非就是:出于人員培訓的考慮,出于快速開發的考慮……
沒有復雜的數據類型,甚至于其實根本不用管數據類型是什么,因為它是一個弱類型的語言……
只有一個數據結構:table,可以做變長數組,可做hash表,甚至用于模擬Class……
你可以不用聲明類型,它可以叫做“使用即聲明”。你一不小心把名字寫錯了,解釋器還不報錯:這是合法的。想要捕獲這種錯誤,還需要一些技巧性的解決方法。
沒有像VS那樣好用的IDE(因為我自始自終都在用著這個讓人惰性化的工具),雖然有UEStudio、EditPlus、NotePad++、SciTe、GVIM、LuaEdit,甚至于Eclipse也可以用,但是,始終不覺得好用。
調試起來也不大方便,不過還好有Decoda這個支持遠程調試器的好東西,至少還有的用。
不管怎樣,
弱類型有弱類型的好處,實現委托不是那么困難的事情了,也不需要使用像boost:any這樣的玩意了。C++中所需要思考的東西一下子不再需要去煩擾了。
不過我卻依然快不起來,語言上所要困擾的東西雖然少了許多,但是習慣它總是需要時間的。
而且,融入新團隊,溝通,這些開發中的成本始終是存在的,不管用什么編程語言,不管做什么項目,不管在什么公司……