# 定制消消乐 - Custom Match 3 Game 一个支持自定义消除元素的 Web 移动端三消游戏,基于 Phaser 3 开发。 ## 🎮 游戏特色 - **自定义消除元素**:通过配置文件轻松定制消除方块的外观、属性和特效 - **智能关卡生成**:自动生成可通关的关卡,确保游戏的可玩性 - **移动端优化**:专为移动设备优化的触摸操作和界面适配 - **本地数据存储**:支持游戏进度、设置和统计数据的本地保存 - **流畅动画**:丰富的消除特效和流畅的交互动画 - **主题切换**:支持一键切换不同的游戏主题 ## 🚀 快速开始 ### 环境要求 - Node.js (版本 14 或更高) - 现代浏览器 (Chrome, Firefox, Safari, Edge) ### 安装 ```bash # 克隆项目 git clone cd custom-match3-game # 安装依赖 npm install ``` ### 运行 ```bash # 开发模式 npm run dev # 构建项目 npm run build # 预览构建结果 npm run preview # 本地服务器运行(构建后) npm run serve ``` 开发模式下,游戏将在 `http://localhost:3000` 启动。 ## 📁 项目结构 ``` custom-match3-game/ ├── public/ # 静态资源目录 ├── src/ # 源代码目录 │ ├── scenes/ # 游戏场景 │ │ ├── PreloadScene.js # 预加载场景 │ │ ├── MenuScene.js # 主菜单场景 │ │ └── GameScene.js # 游戏主场景 │ ├── game/ # 游戏核心逻辑 │ │ ├── GameBoard.js # 游戏棋盘类 │ │ └── LevelGenerator.js # 关卡生成器 │ ├── utils/ # 工具类 │ │ └── StorageManager.js # 本地存储管理 │ └── main.js # 游戏入口文件 ├── config/ # 配置文件 │ ├── elements.json # 消除元素配置 │ └── levelgen.json # 关卡生成配置 ├── assets/ # 游戏资源 │ └── elements/ # 消除元素图片 ├── index.html # 主页面 ├── vite.config.js # Vite 配置 ├── package.json # 项目依赖配置 └── README.md # 项目说明 ``` ## ⚙️ 自定义配置 ### 消除元素配置 (`config/elements.json`) ```json { "elements": [ { "id": "red", "name": "红色方块", "type": "basic", "imagePath": "assets/elements/red.png", "color": "#ff4444", "score": 10, "animations": { "idle": "red_idle", "match": "red_match", "destroy": "red_destroy" }, "sounds": { "match": "match.mp3", "destroy": "destroy.mp3" } } ] } ``` ### 关卡生成配置 (`config/levelgen.json`) ```json { "levelGeneration": { "boardSize": { "width": 8, "height": 8 }, "difficulties": [ { "level": 1, "name": "简单", "elementTypes": 4, "maxMoves": 30, "targetScore": 1000 } ] } } ``` ## 🎯 核心功能 ### 三消游戏逻辑 - **匹配检测**:自动检测横向和纵向的三个或以上相同元素 - **连锁反应**:消除后自动触发下落和新的匹配检测 - **交换验证**:只允许能产生匹配的有效交换 - **重力系统**:消除后元素自动下落填补空缺 ### 关卡生成算法 - **可解性保证**:使用回溯算法确保每个关卡都有解 - **难度递进**:根据关卡数自动调整难度参数 - **目标多样化**:支持分数、收集、清除障碍等多种目标类型 ### 移动端适配 - **触摸优化**:支持点击选择和滑动交换操作 - **响应式设计**:自动适配不同屏幕尺寸 - **性能优化**:针对移动设备的内存和性能优化 ## 🛠️ 技术栈 - **游戏引擎**:Phaser 3.70.0 - **构建工具**:Vite 4.4.0 - **开发语言**:JavaScript (ES6+) - **样式预处理**:原生 CSS - **部署平台**:静态网站托管 ## 📱 浏览器支持 - Chrome 60+ - Firefox 55+ - Safari 11+ - Edge 79+ - 移动端浏览器 (iOS Safari, Android Chrome) ## 🎨 自定义主题 游戏支持主题切换功能,你可以通过以下方式自定义主题: 1. 在 `assets/elements/` 目录下添加新的主题图片 2. 修改 `config/elements.json` 中的图片路径 3. 重新构建项目 ## 🔧 开发指南 ### 添加新的消除元素 1. 在 `assets/elements/` 目录下添加新的图片文件 2. 在 `config/elements.json` 中添加新的元素配置 3. 重启开发服务器 ### 修改关卡生成规则 1. 编辑 `config/levelgen.json` 文件 2. 调整难度参数、棋盘大小、目标类型等 3. 重启开发服务器查看效果 ### 扩展游戏功能 游戏采用模块化设计,你可以轻松扩展以下功能: - 新的特殊道具和效果 - 更多的游戏模式 - 社交功能(排行榜、分享等) - 音效和背景音乐 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目! ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 项目 Issues: [GitHub Issues] - 邮箱: [your-email@example.com] --- **享受定制化的三消乐趣!** 🎉