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