perf: 优化底图可走路径
This commit is contained in:
108
.kilocode/rules/memory-bank/architecture.md
Normal file
108
.kilocode/rules/memory-bank/architecture.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 系统架构
|
||||
|
||||
## 整体架构
|
||||
|
||||
项目采用组件化架构,基于 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. 状态模式
|
||||
- 玩家动画状态管理
|
||||
- 游戏状态控制
|
||||
|
||||
## 关键实现路径
|
||||
|
||||
### 寻路流程
|
||||
1. 触摸输入转换世界坐标
|
||||
2. 世界坐标转瓦片坐标
|
||||
3. A*算法计算路径
|
||||
4. 路径平滑处理
|
||||
5. 瓦片坐标转世界坐标
|
||||
6. 执行移动动画
|
||||
|
||||
### 战斗流程
|
||||
1. 碰撞检测触发
|
||||
2. 玩家对齐到攻击位置
|
||||
3. 播放攻击动画
|
||||
4. 比较生命值
|
||||
5. 执行胜负逻辑
|
||||
6. 更新游戏状态
|
||||
|
||||
### 升级流程
|
||||
1. 击败特定怪物触发
|
||||
2. 道具飞行动画
|
||||
3. 播放升级特效
|
||||
4. 切换动画资源
|
||||
5. 更新玩家状态
|
||||
|
||||
## 性能考虑
|
||||
|
||||
- 寻路算法使用开放列表和关闭列表优化
|
||||
- 动画切换避免重复播放
|
||||
- 对象池管理(待实现)
|
||||
- 资源分包加载减少初始加载时间
|
||||
Reference in New Issue
Block a user