docs: 文档中文化和清理
新增: - 开发规范.md (翻译自CLAUDE.md) 重命名为中文: - project_structure.md 项目结构说明.md - naming_convention.md 命名规范.md - code_comment_guide.md 代码注释规范.md - git_commit_guide.md Git提交规范.md - api-documentation.md API接口文档.md - network_manager_setup.md 网络管理器设置.md - setup.md 项目设置指南.md - testing_guide.md 测试指南.md - web_deployment_guide.md Web部署指南.md - module_development.md 模块开发指南.md - performance_optimization.md 性能优化指南.md - scene_design.md 场景设计规范.md - auth/form_validation.md auth/表单验证规范.md - auth/testing_guide.md auth/认证测试指南.md 删除总结性文档: - final_update_summary.md - web_deployment_changelog.md - CLAUDE.md
This commit is contained in:
344
README.md
344
README.md
@@ -23,19 +23,13 @@ Whale Town 是一个功能完整的像素游戏前端客户端,采用模块化
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
<<<<<<< HEAD
|
||||
### 📋 环境要求
|
||||
|
||||
- **Godot Engine** >= 4.5.0 (推荐 4.5.1)
|
||||
- **Godot Engine** >= 4.5.0 (推荐 4.5.1)(https://godotengine.org/download)
|
||||
- **Python** >= 3.7.0 (用于API测试,可选)
|
||||
- **Git** >= 2.0.0
|
||||
|
||||
### 🛠️ 安装与运行
|
||||
=======
|
||||
### 环境要求
|
||||
- [Godot Engine 4.5+](https://godotengine.org/download)
|
||||
- Python 3.7+ (用于API测试和Web服务器)
|
||||
>>>>>>> whale-town-front/main
|
||||
|
||||
```bash
|
||||
# 1. 克隆项目
|
||||
@@ -49,333 +43,12 @@ cd whale-town
|
||||
# 按F5或点击"运行"按钮启动游戏
|
||||
```
|
||||
|
||||
<<<<<<< HEAD
|
||||
🎉 **游戏启动成功!** 进入认证界面开始体验
|
||||
|
||||
### 🧪 快速测试
|
||||
|
||||
```bash
|
||||
# API接口测试
|
||||
=======
|
||||
### Web版本部署
|
||||
```bash
|
||||
# Windows用户
|
||||
tools\build_web.bat # 导出Web版本
|
||||
tools\serve_web.bat # 启动本地测试服务器
|
||||
|
||||
# Linux/macOS用户
|
||||
./tools/build_web.sh # 导出Web版本
|
||||
./tools/serve_web.sh # 启动本地测试服务器
|
||||
```
|
||||
|
||||
详细部署指南请查看: [Web部署完整指南](docs/web_deployment_guide.md)
|
||||
|
||||
## 🏗️ 项目架构
|
||||
|
||||
### 核心设计理念
|
||||
项目采用 **分层架构** 和 **组件化设计**,遵循 Godot 最佳实践:
|
||||
- **清晰的分层** - 框架层、玩法层、界面层明确分离
|
||||
- **场景内聚** - 脚本紧邻场景文件,符合 Godot 原生开发习惯
|
||||
- **高度解耦** - 通过事件系统和管理器通信
|
||||
- **组件复用** - 可复用组件统一管理
|
||||
- **标准化** - 统一的命名规范和目录结构
|
||||
- **测试驱动** - 完整的测试体系和文档
|
||||
|
||||
### 目录结构
|
||||
```
|
||||
whaleTown/
|
||||
├── _Core/ # [框架层] 游戏的底层框架,单例,全局管理器
|
||||
│ ├── managers/ # 游戏管理器
|
||||
│ │ ├── GameManager.gd # 游戏状态管理
|
||||
│ │ ├── SceneManager.gd # 场景管理
|
||||
│ │ ├── NetworkManager.gd # 网络通信
|
||||
│ │ └── ResponseHandler.gd # API响应处理
|
||||
│ ├── systems/ # 核心系统
|
||||
│ │ └── EventSystem.gd # 事件系统
|
||||
│ └── singletons/ # 其他单例(待扩展)
|
||||
│
|
||||
├── Scenes/ # [玩法层] 具体的游戏场景、实体、地图
|
||||
│ ├── Maps/ # 地图场景
|
||||
│ │ └── main_scene.tscn # 主游戏场景
|
||||
│ ├── Entities/ # 游戏实体
|
||||
│ │ ├── Player/ # 玩家实体
|
||||
│ │ ├── NPC/ # NPC实体
|
||||
│ │ └── Interactables/ # 交互物
|
||||
│ └── Components/ # 可复用组件
|
||||
│
|
||||
├── UI/ # [界面层] 所有UI相关的预制体和逻辑
|
||||
│ ├── HUD/ # 抬头显示(常驻)
|
||||
│ ├── Windows/ # 模态窗口
|
||||
│ │ └── LoginWindow.tscn # 登录窗口
|
||||
│ ├── Dialog/ # 对话系统
|
||||
│ └── Theme/ # 全局样式
|
||||
│ ├── MainTheme.tres # 主主题
|
||||
│ └── Fonts/ # 字体文件
|
||||
│
|
||||
├── Assets/ # [资源层] 美术、音频、字体
|
||||
│ ├── Sprites/ # 精灵图
|
||||
│ │ ├── icon/ # 图标
|
||||
│ │ ├── materials/ # 材质
|
||||
│ │ ├── shaders/ # 着色器
|
||||
│ │ └── sprites/ # 精灵图
|
||||
│ ├── Audio/ # 音频
|
||||
│ └── Fonts/ # 字体
|
||||
│
|
||||
├── Config/ # [配置层] 游戏配置文件
|
||||
│ ├── game_config.json # 游戏配置
|
||||
│ └── zh_CN.json # 中文本地化
|
||||
│
|
||||
├── Utils/ # [工具层] 通用辅助脚本
|
||||
│ └── StringUtils.gd # 字符串工具
|
||||
│
|
||||
├── Tests/ # [测试层] 单元测试脚本
|
||||
│ ├── api/ # API接口测试
|
||||
│ ├── auth/ # 认证UI测试
|
||||
│ ├── unit/ # 单元测试
|
||||
│ ├── integration/ # 集成测试
|
||||
│ └── performance/ # 性能测试
|
||||
│
|
||||
├── docs/ # 项目文档
|
||||
│ ├── auth/ # 认证相关文档
|
||||
│ ├── api-documentation.md # API接口文档
|
||||
│ ├── web_deployment_guide.md # Web部署完整指南
|
||||
│ ├── web_deployment_changelog.md # Web部署更新日志
|
||||
│ ├── project_structure.md # 项目结构说明
|
||||
│ ├── naming_convention.md # 命名规范
|
||||
│ ├── code_comment_guide.md # 代码注释规范
|
||||
│ └── git_commit_guide.md # Git提交规范
|
||||
│
|
||||
├── tools/ # 开发工具和脚本
|
||||
│ ├── build_web.bat # Windows Web导出脚本
|
||||
│ ├── build_web.sh # Linux/macOS Web导出脚本
|
||||
│ ├── serve_web.bat # Windows 本地服务器
|
||||
│ └── serve_web.sh # Linux/macOS 本地服务器
|
||||
│
|
||||
├── REFACTORING.md # 项目结构重构文档
|
||||
└── MIGRATION_COMPLETE.md # 迁移完成标记
|
||||
```
|
||||
|
||||
### 架构层次说明
|
||||
|
||||
#### 1. 框架层 (_Core/)
|
||||
- **职责**: 游戏的底层框架,与具体游戏逻辑无关
|
||||
- **内容**: 单例管理器、核心系统
|
||||
- **特点**: 自动加载,全局可访问
|
||||
- **命名**: 使用下划线前缀 `_Core` 表示这是核心框架代码
|
||||
|
||||
#### 2. 玩法层 (Scenes/)
|
||||
- **职责**: 游戏世界,地图和实体
|
||||
- **内容**: 游戏场景、角色、NPC、交互物
|
||||
- **特点**: 场景内聚,脚本紧邻场景文件
|
||||
- **组织**: 按游戏世界的实体类型分类
|
||||
|
||||
#### 3. 界面层 (UI/)
|
||||
- **职责**: 所有界面,HUD和弹窗
|
||||
- **内容**: 常驻界面、模态窗口、对话系统、主题样式
|
||||
- **特点**: 独立于游戏场景,便于UI开发和维护
|
||||
- **组织**: 按界面类型和用途分类
|
||||
|
||||
#### 4. 资源层 (Assets/)
|
||||
- **职责**: 纯美术资源
|
||||
- **内容**: 精灵图、音频、字体等
|
||||
- **特点**: 与代码分离,便于美术组独立工作
|
||||
- **组织**: 按资源类型分类
|
||||
|
||||
#### 5. 配置层 (Config/)
|
||||
- **职责**: 静态数据,策划可编辑
|
||||
- **内容**: 游戏配置、本地化文件
|
||||
- **特点**: 数据驱动,便于调整游戏参数
|
||||
- **格式**: JSON 文件
|
||||
|
||||
#### 6. 工具层 (Utils/)
|
||||
- **职责**: 通用辅助脚本
|
||||
- **内容**: 工具函数库
|
||||
- **特点**: 可被任何层调用
|
||||
- **原则**: 无依赖,纯函数
|
||||
|
||||
### 核心系统
|
||||
项目包含以下自动加载的核心系统(位于 [_Core/](./_Core/)):
|
||||
|
||||
- **GameManager** - 全局游戏状态管理
|
||||
- **SceneManager** - 场景切换管理
|
||||
- **EventSystem** - 事件通信系统
|
||||
- **NetworkManager** - 网络通信管理
|
||||
- **ResponseHandler** - API响应处理
|
||||
|
||||
使用示例:
|
||||
```gdscript
|
||||
# 状态管理
|
||||
GameManager.change_state(GameManager.GameState.IN_GAME)
|
||||
|
||||
# 场景切换(已更新路径)
|
||||
SceneManager.change_scene("main") # → res://Scenes/Maps/main_scene.tscn
|
||||
|
||||
# 事件通信
|
||||
EventSystem.emit_event("player_health_changed", 80)
|
||||
EventSystem.connect_event("player_died", _on_player_died)
|
||||
```
|
||||
|
||||
### 设计原则
|
||||
|
||||
#### 1. 清晰的分层
|
||||
- **_Core**: 框架代码,与具体游戏逻辑无关
|
||||
- **Scenes**: 游戏世界,地图和实体
|
||||
- **UI**: 所有界面,HUD和弹窗
|
||||
- **Config**: 静态数据,策划可编辑
|
||||
|
||||
#### 2. 组件化设计
|
||||
可复用组件放在 `Scenes/Components/` 下,使用组合优于继承的设计模式:
|
||||
- InteractableArea.tscn - 让任何物体"可交互"
|
||||
- MovementSync.gd - 网络位置同步
|
||||
- NameTag3D.tscn - 头顶名字条
|
||||
|
||||
#### 3. 场景内聚
|
||||
- 每个 .tscn 配套一个 .gd
|
||||
- 脚本紧邻场景文件存放
|
||||
- 符合 Godot 原生开发习惯
|
||||
|
||||
#### 4. 职责单一
|
||||
```
|
||||
UI/Windows/ - 模态窗口(登录、设置、商店)
|
||||
UI/HUD/ - 常驻界面(聊天框、状态栏)
|
||||
UI/Dialog/ - 对话系统
|
||||
```
|
||||
|
||||
### 团队协作
|
||||
- **美术组**: 主要在 [Assets/](./Assets/) 工作
|
||||
- **策划组**: 主要在 [Config/](./Config/) 工作
|
||||
- **程序组**: 主要在 [_Core/](./_Core/), [Scenes/](./Scenes/), [UI/](./UI/) 工作
|
||||
- **测试组**: 主要在 [Tests/](./Tests/) 工作
|
||||
|
||||
## ✨ 主要功能
|
||||
|
||||
### 🔐 用户认证系统
|
||||
- **用户注册** - 支持邮箱验证码验证
|
||||
- **用户登录** - 多种登录方式(用户名/邮箱/手机号)
|
||||
- **密码管理** - 密码重置和修改功能
|
||||
- **GitHub OAuth** - 第三方登录集成
|
||||
- **错误处理** - 完整的错误提示和频率限制
|
||||
- **UI界面**: [UI/Windows/LoginWindow.tscn](UI/Windows/LoginWindow.tscn)
|
||||
|
||||
### 🌐 Web版本部署
|
||||
- **自动化导出** - 一键导出Web版本
|
||||
- **本地测试服务器** - 内置HTTP服务器用于测试
|
||||
- **生产环境配置** - 完整的服务器配置指南
|
||||
- **跨平台支持** - Windows、Linux、macOS全平台支持
|
||||
- **性能优化** - 资源压缩和加载优化
|
||||
|
||||
### 🎮 游戏功能
|
||||
- **主场景** - 游戏主界面和菜单系统 ([Scenes/Maps/main_scene.tscn](Scenes/Maps/main_scene.tscn))
|
||||
- **认证场景** - 完整的登录注册界面
|
||||
- **状态管理** - 用户状态和游戏状态管理
|
||||
- **网络通信** - RESTful API集成 ([_Core/managers/NetworkManager.gd](_Core/managers/NetworkManager.gd))
|
||||
|
||||
### 🧪 测试体系
|
||||
- **API测试** - 完整的接口测试脚本 ([Tests/api/](Tests/api/))
|
||||
- **UI测试** - 认证界面的交互测试 ([Tests/auth/](Tests/auth/))
|
||||
- **错误场景** - 边界条件和异常处理测试
|
||||
|
||||
## 🔧 开发规范
|
||||
|
||||
### 命名规范
|
||||
- **场景文件**: `snake_case_scene.tscn` (如: `auth_scene.tscn`)
|
||||
- **脚本文件**: `PascalCase.gd` (如: `AuthScene.gd`)
|
||||
- **节点名称**: `camelCase` (如: `loginButton`)
|
||||
- **变量/函数**: `camelCase` (如: `playerHealth`)
|
||||
- **常量**: `UPPER_CASE` (如: `MAX_HEALTH`)
|
||||
- **资源文件**: `snake_case` (如: `bg_auth_scene.png`)
|
||||
|
||||
### 代码注释规范
|
||||
- **文件头注释**: 说明文件用途、主要功能和依赖关系
|
||||
- **函数注释**: 包含参数说明、返回值和使用示例
|
||||
- **复杂逻辑**: 添加行内注释解释业务逻辑和设计决策
|
||||
- **特殊标记**: 使用 TODO、FIXME、NOTE 等标准标记
|
||||
- **AI辅助**: 支持AI补充注释,提供详细的上下文信息
|
||||
|
||||
### Git 提交规范
|
||||
使用格式:`<类型>:<描述>`
|
||||
|
||||
常用类型:`feat` `fix` `docs` `refactor` `scene` `asset` `ui` `test`
|
||||
|
||||
```bash
|
||||
git commit -m "feat:实现用户登录功能"
|
||||
git commit -m "fix:修复429错误处理"
|
||||
git commit -m "test:添加API接口测试"
|
||||
git commit -m "docs:更新项目文档"
|
||||
```
|
||||
|
||||
## 📚 项目文档
|
||||
|
||||
### 核心文档
|
||||
- 📋 [项目结构详解](docs/project_structure.md) - 完整的架构说明
|
||||
- 📝 [命名规范](docs/naming_convention.md) - 详细的命名规则
|
||||
- 💬 [代码注释规范](docs/code_comment_guide.md) - 注释标准和AI辅助指南
|
||||
- 🔀 [Git提交规范](docs/git_commit_guide.md) - 提交信息标准
|
||||
- 🌐 [Web部署指南](docs/web_deployment_guide.md) - 完整的Web部署文档
|
||||
|
||||
### API和测试文档
|
||||
- 🔌 [API接口文档](docs/api-documentation.md) - 完整的API说明和测试指南
|
||||
- 🔐 [认证系统文档](docs/auth/) - 用户认证相关文档
|
||||
- 🧪 [API测试指南](tests/api/README.md) - API测试使用方法
|
||||
- 🎮 [认证UI测试](tests/auth/README.md) - UI测试场景说明
|
||||
|
||||
## 🛠️ 开发指南
|
||||
|
||||
### 添加新场景
|
||||
1. 在 [Scenes/](./Scenes/) 对应分类下创建场景文件
|
||||
2. 脚本文件紧邻场景文件存放(场景内聚原则)
|
||||
3. 在 [_Core/managers/SceneManager.gd](_Core/managers/SceneManager.gd) 中注册场景路径
|
||||
4. 使用 `SceneManager.change_scene()` 切换场景
|
||||
|
||||
示例:
|
||||
```gdscript
|
||||
# 在 SceneManager.gd 中注册
|
||||
var scene_paths: Dictionary = {
|
||||
"battle": "res://Scenes/Maps/battle_scene.tscn",
|
||||
"shop": "res://UI/Windows/ShopWindow.tscn",
|
||||
}
|
||||
|
||||
# 使用
|
||||
SceneManager.change_scene("battle")
|
||||
```
|
||||
|
||||
### 创建可复用组件
|
||||
1. 在 [Scenes/Components/](./Scenes/Components/) 创建组件场景
|
||||
2. 实现标准接口,保持组件独立性
|
||||
3. 通过 [EventSystem](_Core/systems/EventSystem.gd) 与其他模块通信
|
||||
4. 组件可以被任何场景实例化复用
|
||||
|
||||
### 添加UI界面
|
||||
1. **模态窗口** → 放入 [UI/Windows/](./UI/Windows/)
|
||||
2. **常驻界面** → 放入 [UI/HUD/](./UI/HUD/)
|
||||
3. **对话系统** → 放入 [UI/Dialog/](./UI/Dialog/)
|
||||
4. UI脚本紧邻场景文件,保持内聚
|
||||
|
||||
### 资源管理
|
||||
- **精灵图** → 放入 [Assets/Sprites/](./Assets/Sprites/) 对应分类
|
||||
- **音频文件** → 放入 [Assets/Audio/](./Assets/Audio/) 对应分类
|
||||
- **字体文件** → 放入 [UI/Theme/Fonts/](./UI/Theme/Fonts/)
|
||||
- **配置文件** → 放入 [Config/](./Config/)
|
||||
- 遵循命名规范,使用英文小写+下划线
|
||||
|
||||
### 路径映射参考
|
||||
|
||||
| 功能类型 | 旧路径 | 新路径 |
|
||||
|---------|--------|--------|
|
||||
| 核心管理器 | `core/managers/` | [_Core/managers/](_Core/managers/) |
|
||||
| 游戏场景 | `scenes/main_scene.tscn` | [Scenes/Maps/main_scene.tscn](Scenes/Maps/main_scene.tscn) |
|
||||
| 登录界面 | `scenes/auth_scene.tscn` | [UI/Windows/LoginWindow.tscn](UI/Windows/LoginWindow.tscn) |
|
||||
| 配置文件 | `data/configs/` | [Config/](Config/) |
|
||||
| 工具类 | `core/utils/` | [Utils/](Utils/) |
|
||||
|
||||
详细的重构说明请查看:[REFACTORING.md](REFACTORING.md)
|
||||
|
||||
### API接口测试
|
||||
项目提供了完整的Python测试脚本来验证API接口:
|
||||
|
||||
```bash
|
||||
# 快速测试API连通性
|
||||
>>>>>>> whale-town-front/main
|
||||
python tests/api/simple_api_test.py
|
||||
|
||||
# 完整功能测试
|
||||
@@ -392,7 +65,6 @@ python tests/api/api_test.py --verbose
|
||||
|
||||
## 🎓 新开发者指南
|
||||
|
||||
<<<<<<< HEAD
|
||||
### 第一步:了解项目规范 📚
|
||||
|
||||
**⚠️ 重要:在开始开发前,请务必阅读以下文档**
|
||||
@@ -703,17 +375,3 @@ Made with ❤️ by the Whale Town Team
|
||||
[⭐ Star](https://gitea.xinghangee.icu/datawhale/whale-town) | [🍴 Fork](https://gitea.xinghangee.icu/datawhale/whale-town/fork) | [📖 Docs](./docs/) | [🐛 Issues](https://gitea.xinghangee.icu/datawhale/whale-town/issues)
|
||||
|
||||
</div>
|
||||
=======
|
||||
- ✅ 基础架构搭建完成
|
||||
- ✅ 项目结构重构完成(2025-12-31)
|
||||
- ✅ 用户认证系统完成
|
||||
- ✅ API接口集成完成
|
||||
- ✅ 测试体系建立完成
|
||||
- ✅ 文档体系完善
|
||||
- 🚧 游戏核心玩法开发中
|
||||
- 🚧 更多功能模块开发中
|
||||
|
||||
**最后更新**: 2025-12-31
|
||||
|
||||
**重要更新**: 项目已完成架构重构,采用新的分层结构。详见 [REFACTORING.md](REFACTORING.md)
|
||||
>>>>>>> whale-town-front/main
|
||||
|
||||
Reference in New Issue
Block a user