2.6 KiB
2.6 KiB
系统架构
整体架构
项目采用组件化架构,基于 Cocos Creator 3.8.7 的实体组件系统(ECS)设计。
核心模块
1. 寻路系统
-
TiledMapPathfinder (
assets/scripts/TiledMapPathfinder.ts)- 瓦片地图寻路管理器
- 负责世界坐标与瓦片坐标转换
- 集成A*算法进行路径计算
- 提供路径平滑功能
-
AStarPathfinding (
assets/scripts/AStarPathfinding.ts)- 纯A*算法实现
- 支持8方向移动
- 包含对角线移动的墙角检测
- 可配置的移动代价
2. 玩家控制系统
- PlayerController (
assets/scripts/PlayerController.ts)- 核心游戏逻辑控制器(1455行)
- 处理触摸输入和玩家移动
- 管理动画状态切换
- 实现战斗逻辑
- 处理道具收集和升级系统
- UI弹窗管理
3. 相机系统
- CameraFollow (
assets/scripts/CameraFollow.ts)- 平滑相机跟随
- 地图边界限制
- 可配置的跟随速度和偏移
- 支持初始焦点设置
4. 游戏管理
-
Manager (
assets/scripts/Manager.ts)- 游戏初始化管理
- 组件间协调
- 地图信息管理
-
Start (
assets/scripts/Start.ts)- 资源分包加载
- 场景跳转管理
5. 辅助组件
- Shadow2D (
assets/scripts/Shadow2D.ts)- 2D阴影效果渲染
- PathfindingTest (
assets/scripts/PathfindingTest.ts)- 寻路系统测试工具
数据流
用户触摸输入 → PlayerController → TiledMapPathfinder → AStarPathfinding
↓
动画系统 → 相机跟随 → UI更新
↓
碰撞检测 → 战斗逻辑 → 游戏状态更新
关键设计模式
1. 组件模式
- 利用Cocos Creator的组件系统实现模块化
- 每个功能独立封装为组件
2. 观察者模式
- 碰撞事件监听
- 动画完成事件处理
3. 状态模式
- 玩家动画状态管理
- 游戏状态控制
关键实现路径
寻路流程
- 触摸输入转换世界坐标
- 世界坐标转瓦片坐标
- A*算法计算路径
- 路径平滑处理
- 瓦片坐标转世界坐标
- 执行移动动画
战斗流程
- 碰撞检测触发
- 玩家对齐到攻击位置
- 播放攻击动画
- 比较生命值
- 执行胜负逻辑
- 更新游戏状态
升级流程
- 击败特定怪物触发
- 道具飞行动画
- 播放升级特效
- 切换动画资源
- 更新玩家状态
性能考虑
- 寻路算法使用开放列表和关闭列表优化
- 动画切换避免重复播放
- 对象池管理(待实现)
- 资源分包加载减少初始加载时间