This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
这是一个基于 Phaser 3.90.0 的教育类数学游戏项目,名为 "Tica侦探事务所:数字谜案",面向8-10岁儿童,通过侦探主题的界面和游戏化设计来教授数学概念。
npm run dev # 启动开发服务器 (端口3000)
npm run build # TypeScript编译 + Vite构建
npm run preview # 预览构建结果npm test # 运行所有测试
npm run test:watch # 监听模式运行测试
npm run lint # ESLint代码检查
npm run lint:fix # 自动修复ESLint问题- 游戏引擎: Phaser 3.90.0 (ESM版本)
- 构建工具: Vite 4.x
- 开发语言: TypeScript
- 测试框架: Jest + jsdom环境
- 代码规范: ESLint + TypeScript ESLint
src/
├── main.ts # 游戏入口点
├── index.html # HTML入口
├── assets/ # 静态资源(音频、字体、图片)
└── game/
├── config/
│ └── gameConfig.ts # Phaser游戏配置
├── managers/ # 核心管理器
│ ├── DifficultyManager.ts
│ ├── EventBus.ts
│ ├── QuestionGenerator.ts
│ ├── SaveManager.ts
│ ├── Strings.ts
│ └── ToolManager.ts
├── scenes/ # 游戏场景
│ ├── BootScene.ts
│ ├── PreloadScene.ts
│ ├── MainMenuScene.ts
│ ├── GameScene.ts
│ ├── UIScene.ts
│ ├── ResultScene.ts
│ ├── HonorScene.ts
│ └── ManualScene.ts
└── utils/ # 工具函数
├── gameFlow.ts
├── mathUtils.ts
├── scoring.ts
└── types.ts
-
场景系统: 采用Phaser的标准场景架构,各场景职责明确:
BootScene: 初始化游戏配置PreloadScene: 资源预加载MainMenuScene: 主菜单界面GameScene: 核心游戏逻辑UIScene: UI渲染层(覆盖在GameScene之上)ResultScene: 关卡结算HonorScene: 荣誉墙/成就系统ManualScene: 游戏说明
-
事件驱动: 使用
EventBus实现模块间解耦通信 -
管理器模式: 各个管理器负责特定功能领域:
DifficultyManager: 难度递增系统QuestionGenerator: 数学题目生成(核心业务逻辑)ToolManager: 侦探道具系统SaveManager: 数据持久化Strings: 国际化和文本管理
-
UI分层:
UIScene独立于GameScene,确保UI不受游戏相机影响
核心玩法: 玩家扮演小侦探Tica,通过判断数学等式的真伪来"破解案件"
- 题目生成: 基于难度系统自动生成数学题目,包含错误答案的策略性生成
- 道具系统: 每关可使用3次道具(真相放大镜、时间怀表、思维闪电)
- 进度系统: 基于难度积分的无尽关卡模式
- 成就系统: 徽章收集和侦探等级
项目已配置以下路径别名(在tsconfig.json和vite.config.ts中):
@/*→src/*@/game/*→src/game/*@/assets/*→src/assets/*
- 测试文件放在
tests/目录下 - 使用
.test.ts或.spec.ts后缀 - 测试配置已设置路径别名映射
- 排除
main.ts和测试文件本身的覆盖率统计
- 使用TypeScript严格模式
- ESLint规则已优化,允许在测试文件中使用
any - 强制使用
const和箭头函数 - 优先使用类型导入
- 输出目录:
dist/ - 源代码根目录:
src/ - 资源目录:
src/assets/ - 开发服务器端口: 3000
- PWA支持: 已配置vite-plugin-pwa
- Phaser配置: 游戏使用1280×720基准分辨率,采用FIT缩放模式
- 性能优化: Phaser依赖已在Vite中预优化
- 跨平台: 支持PC/平板浏览器,响应式设计
- 中文本地化: 游戏内容主要为中文,HTML设置
lang="zh-CN" - 主题设计: 深色主题背景色
#0b1021
详细的游戏规格说明请参考docs/Spec.md文件,包含完整的设计文档、游戏机制和业务逻辑说明。