perf: 优化底图可走路径

This commit is contained in:
richarjiang
2025-10-20 09:22:47 +08:00
parent 93d5473c88
commit 8f4200a7a3
10 changed files with 688 additions and 116 deletions

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

View File

@@ -0,0 +1,40 @@
# 项目概述
这是一个基于 Cocos Creator 3.8.7 的 2D 平面游戏项目,主要玩法是通过 TiledMap 进行寻路打怪。
## 核心玩法
- 玩家在 2D 瓦片地图上移动
- 使用 A* 寻路算法进行路径规划
- 与怪物进行战斗,通过比较生命值决定胜负
- 收集道具升级角色
- 相机跟随玩家移动
## 技术特点
- 使用 Cocos Creator 3.8.7 引擎
- TypeScript 开发
- TiledMap 地图系统
- A* 寻路算法
- 2D 物理碰撞系统
- 动画系统(支持角色升级后的动画切换)
- 音效系统
- UI 弹窗系统
## 项目结构
- `assets/scripts/` - 核心游戏逻辑
- `assets/scenes/` - 场景文件main.scene, start.scene
- `assets/bundle1/` - 资源分包(动画、图片、音乐)
- `assets/resources/` - 游戏资源
- `settings/` - 引擎和项目配置
## 主要组件
- PlayerController - 玩家控制器
- TiledMapPathfinder - 瓦片地图寻路
- AStarPathfinding - A*寻路算法
- CameraFollow - 相机跟随
- Shadow2D - 2D阴影效果
- Manager - 游戏管理器
- Start - 启动场景管理

View File

@@ -0,0 +1,37 @@
# 当前状态
## 项目状态
项目处于开发阶段,核心功能已基本实现,包括:
- 玩家移动和寻路系统
- 战斗机制
- 角色升级系统
- 相机跟随
- UI弹窗系统
## 最近变更
- 完成了玩家控制器的核心逻辑
- 实现了A*寻路算法与TiledMap的集成
- 添加了角色升级后的动画切换机制
- 完善了战斗系统的视觉反馈
## 当前工作重点
- 优化寻路算法性能
- 完善角色动画系统
- 调整游戏平衡性
- 添加更多游戏内容
## 已知问题
- 寻路算法在复杂地图上可能存在性能问题
- 角色升级后的动画切换需要进一步优化
- 战斗系统的反馈机制可以更加丰富
## 下一步计划
- 添加更多关卡和怪物类型
- 实现存档系统
- 优化移动端适配
- 添加音效和背景音乐

View File

@@ -0,0 +1,39 @@
# 产品描述
## 产品定位
这是一款 2D 瓦片地图冒险游戏,结合了策略寻路和角色扮演元素。游戏通过简洁的操作方式和丰富的视觉反馈,为玩家提供轻松愉快的游戏体验。
## 解决的问题
- 提供简单易上手的移动游戏体验
- 通过寻路机制增加策略性
- 角色成长系统提供长期游戏动力
- 视觉和音效反馈增强游戏沉浸感
## 核心玩法循环
1. **探索阶段**:玩家在瓦片地图上点击移动,使用 A* 寻路算法自动规划路径
2. **战斗阶段**:遇到怪物时自动触发战斗,通过比较生命值决定胜负
3. **成长阶段**:击败怪物获得生命值,收集道具升级角色
4. **挑战阶段**:面对更强的敌人和更复杂的地图布局
## 用户体验目标
- **直观操作**:单点触控即可完成所有操作
- **流畅动画**:角色移动、攻击、升级都有平滑的动画过渡
- **即时反馈**:战斗结果、道具收集都有明确的视觉和音效反馈
- **渐进难度**:从简单到复杂的地图和敌人设计
## 目标用户
- 喜欢休闲游戏的移动端用户
- 偏好策略思考的玩家
- 寻求短期娱乐体验的用户群体
## 成功指标
- 用户留存率
- 游戏完成率
- 用户操作流畅度
- 动画和音效的正面反馈

View File

@@ -0,0 +1,97 @@
# 技术栈
## 核心技术
### 游戏引擎
- **Cocos Creator 3.8.7**
- 基于 TypeScript 的游戏开发引擎
- 支持跨平台发布Web、iOS、Android
- 组件化开发模式
### 开发语言
- **TypeScript**
- 静态类型检查
- 面向对象编程
- ES6+ 语法支持
## 引擎配置
### 启用模块
- **2D渲染** - 2D图形渲染
- **UI系统** - 用户界面组件
- **动画系统** - 帧动画和骨骼动画
- **音频系统** - 背景音乐和音效
- **物理系统** - 2D物理碰撞检测
- **瓦片地图** - Tiled地图支持
- **Spine 3.8** - 骨骼动画支持
- **DragonBones** - 骨骼动画支持
### 项目设置
- **设计分辨率**: 720x1334 (移动端竖屏)
- **物理引擎**: Box2D (2D物理)
- **碰撞组**: player(1), npc(2)
- **TypeScript严格模式**: 关闭
## 资源管理
### 分包加载
- **bundle1** - 主要游戏资源(动画、图片、音乐)
- **bundle2** - 预留资源包
- **resources** - 基础资源
### 动画资源
- 玩家动画序列帧(站立、行走、攻击、死亡)
- 升级前后不同动画版本
- 怪物动画
- 特效动画
## 开发工具
### 地图编辑
- **Tiled Map Editor** - 瓦片地图编辑
- **WalkableLayer** - 可行走区域定义
### 版本控制
- **Git** - 代码版本管理
- **.gitignore** - 排除构建文件和临时文件
## 性能优化
### 寻路算法
- A*算法优化
- 路径平滑处理
- 开放列表和关闭列表管理
### 内存管理
- 资源分包加载
- 动态资源释放
- 对象池模式(待实现)
### 渲染优化
- 2D渲染管线
- 批量绘制
- 纹理压缩
## 平台适配
### 移动端优化
- 触摸输入处理
- 屏幕适配
- 性能调优
### 调试工具
- Cocos Creator调试器
- 浏览器开发者工具
- 自定义寻路测试工具
## 构建配置
### 开发环境
- 热重载支持
- 调试信息输出
- 性能监控
### 生产环境
- 代码压缩
- 资源优化
- 错误处理