Files
climb/.kilocode/rules/memory-bank/architecture.md
2025-10-20 09:22:47 +08:00

108 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统架构
## 整体架构
项目采用组件化架构,基于 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. 更新玩家状态
## 性能考虑
- 寻路算法使用开放列表和关闭列表优化
- 动画切换避免重复播放
- 对象池管理(待实现)
- 资源分包加载减少初始加载时间