本文使用的libgdx是0.92版本,和現在的最新版可能有一些不一樣的地方。全文內容僅供參考。
上幾篇文章介紹了libgdx架構的一些基本類的用法,也夾雜著瀏覽了一下部分原始碼,但是如果使用libgdx進實際開發?
僅僅瞭解幾個類是不夠的,還需要對架構有具體和宏觀的瞭解。
1.應用的生命週期
遊戲應該高效和穩定,特別是對於android平台。目前的開發都是面向手機和平板。如果有效管理資源,如何高效的運行都是非常重要的。
試想一個製作優美,可玩性高的遊戲運行於你的android手機上卻10秒鐘崩潰一次,運行時卡的如同在看漫畫,這樣的遊戲是有合格的嗎?
Android一般不用管resize(),我們在create中執行個體化所需的對象,在render()中進行繪製。pause()時可以保持當前的靈活資料。dispose()報銷對象。
而在resume()中根據保持的資料對遊戲進行還原。
其實說不負責一點,dispose()你可以不管,android系統會自動回收一些,使用者對於退出後的短暫停滯也是有接受能力的。
create()你也可以水一些,大不了進入遊戲或者初始化相關情境時速度慢一些罷了。
但是pause()和resume()你必須認真處理。電話是最常見的意外性中斷,不會有使用者偏愛一個電話就可以讓記錄或者進度消失的遊戲的。
2.遊戲構架
對於是否該稱架構我一直有所疑惑,你可以理解為遊戲的組成。一個遊戲不論大小,不論複雜程度都應該具有的大致架構。
這裡稍微解釋一下。
輸入只是使用者的響應,可以使點擊(Touch)或者點擊(Click),拖拽(Drag)等。
輸出一般是圖片和聲音或者影像,當時也有檔案或者其他資料(比如網路的儲存)。
而在輸入中的檔案一般為圖片和聲音,邏輯由數學邏輯和物理邏輯構成。
而libgdx對於物理上處理是Box2D的封裝,可以滿足一般需求了。對於數學的封裝了一些常見的結構和少量算式,不過可以基於此開發自己需要的演算法。
libgdx對於映像和聲音等檔案的處理比較好,可以直接使用。
3.遊戲容器
最原始的容器自然是Application了。
然後是Game,它管理著若干個Screen,比如遊戲情境,積分情境,協助情境,高分榜情境。而情境之下有著若干舞台,舞台之中是演員。
寫在最後:
1.對於各周期需要的注意事項基本是我的經驗所得,沒有明確的科學性。
2.最近因為參加全國大學生電子商務“創新 創意 創業”挑戰賽都沒有怎麼寫東西。周六終於弄完了,得了一等獎和最佳創業獎,還算沒有白費時間。接下來等坑爹的西南財經大學資訊學院發獎狀了,還要準備期末考…