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的优先队列排序


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