參考:
https://gitorious.org/libgdx-lpc-test
一、顯示與交互系統:
使用libgdx的sceen2d機制(Game/Screen/Stage/Actor/Action類)
二、場景切換(簡略):
LoadingScreen
->ExploreScreen
->MainMenuScreen
->LoadGameScreen
->ExploreScreen
->退出程序
->InventoryScreen
->ExploreScreen
->BattleScreen
三、場景切換(詳細):
主入口
開始進入->LoadingScreen
LoadingScreen
加載完成->ExploreScreen
ExploreScreen
按Esc或後退鍵->MainMenuScreen
按I->InventoryScreen
按B->BattleScreen
MainMenuScreen
Load Game按鈕->LoadGameScreen
Continue、New Game、Options按鈕->ExploreScreen
按Esc或後退鍵->退出程序
InventoryScreen
按Esc或後退鍵->ExploreScreen
四、類簡介(標註爲x的類爲實際未使用過的類):
4.1 遊戲頂級層:
Main
PC版主入口
RPG
libgdx的Game類,用於管理所有屏幕類
4.2 場景屏幕層:
MainMenuScreen
libgdx屏幕類的子類,代表主材帶界面
LoadGameScreen
libgdx屏幕類的子類,代表載入界面
LoadingScreen
libgdx屏幕類的子類,代表正在載入界面,後臺執行AssetManager.load
ExploreScreen
libgdx屏幕類的子類,代表地圖界面
InventoryScreen
libgdx屏幕類的子類,代表角色道具界面
BattleScreen
libgdx屏幕類的子類,代表戰鬥界面
4.3 地圖、資源、動畫:
Map
加載tmx地圖,通過DummyDatabaseHelper創建
MapListener
接口類,監聽Map類的碰撞和重疊事件(例如角色進門),用於ExploreScreen
Tileset
用於管理角色的移動動畫所用的資源。
MapLoader
繼承libgdx的SynchronousAssetLoader類,用於自定義RPG類的AssetManager對象
(x)AnimationManager
管理多個Animation
4.4 尋路算法:
Pathfinder
計算尋路路徑的工具類,用於ExploreScreen
PathfinderStrategy
接口類,用於Pathfinder
MapPathfinderStrategy
PathfinderStrategy的實現,用於Pathfinder
PathNodePool
用於Pathfinder,管理PathNode的創建
PathNode
用於Pathfinder
Path
代表Pathfinder的路徑數據
4.5 屬性狀態管理:
GameState
遊戲狀態,管理Party和Inventory的數據讀寫。
Party
遊戲狀態,包含地圖位置屬性和PartyMember映射表
PartyMember
代表同伴屬性
Inventory
管理角色揹包裏的道具
ConfigHelper
接口類,用於GameState類,管理Items
DatabaseHelper
接口類,用於GameState類
DummyConfigHelper
ConfigHelper的實現,在RPG類中指定
DummyDatabaseHelper
DatabaseHelper的實現,在RPG類中指定
Stats
角色屬性值,用於BattleActor
4.6 交互界面,文本框
StyledTable
libgdx的Table子類,用於定製表格的外觀。
TextBox
StyledTable的子類,用於顯示BattleScreen和ExploreScreen中的對話框文本。
Menu
繼承自StyledTable,代表地圖中的菜單,用於ExploreScreen
4.7 道具(ExploreScreen特有)
Items
Item映射表,用於ConfigHelper
Item
抽象類,代表道具(不同於地圖上的物品,可以移動到角色的揹包中)
StatusItem
Item的子類,放在Chest(寶箱)內的道具
4.8 動作者(除BattleActor外均爲ExploreScreen特有):
MapActorLayer
管理MapActor鏈表,用於Map類
MapActor
libgdx動作者的子類,抽象類,代表地圖上的圖塊(玩家、NPC和物品)。
MapCharacter
MapActor的子類,代表地圖上的可移動角色。
Chest
MapActor的子類,代表箱子圖塊
Door
MapActor的子類,代表門圖塊
Sign
MapActor的子類,代表路標圖塊
BattleActor
libgdx動作者的子類,管理Animation映射表和Stats(角色屬性表)
4.9 動作(ExploreScreen特有):
(x)MapActions
用libgdx的Pool類管理FollowPathAction和MapWalkAction的創建,靜態類
MapWalkAction
libgdx動作類的子類,在ExploreScreen類中配置給玩家動作者
FollowPathAction
libgdx動作類的子類,操作動作者執行尋路運動。
4.10 戰鬥系統(BattleScreen特有):
BattleEngine
管理多個BattleActor(友方和敵方),執行回合動作。用於BattleScreen
(x)AttackAction
繼承Action
(x)ItemAction
繼承Action
(x)Action
管理一個或多個BattleActor
StatsComparator
用於BattleEngine的優先隊列排序