libgdx-lpc-test源碼閱讀

參考:

   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的優先隊列排序


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章