MagicPot / README.md
zhanglei
fix voice
ab5909a
|
Raw
History Blame Contribute Delete
7.65 kB
---
title: MagicPot - 魔法锅游戏
emoji: 🪄
colorFrom: purple
colorTo: pink
sdk: static
pinned: false
license: mit
---
# MagicPot - 魔法锅游戏
一个卡通手绘风格的语音交互游戏,通过声音控制魔法锅烹饪各种食物!
## 游戏特色
- 🎨 **卡通手绘风格**:温馨可爱的视觉效果
- 🎤 **语音交互**:通过语音命令控制游戏
- 🍳 **魔法烹饪**:AI生成食物和小动物素材
-**粒子效果**:食物从锅中涌出的动态效果
- 🐾 **动物互动**:小动物会来吃对应的食物
- 🎁 **隐藏彩蛋**:草莓和西瓜的特殊效果
## 游戏玩法
1. **激活魔法锅**:说出 "cook cook cook pot" 来激活魔法锅
2. **选择食物**:说出任何食物的英文单词开始烹饪
3. **AI生成素材**:系统自动生成食物和相关小动物的图片
4. **食物涌出**:锅盖被顶开,食物如粒子般涌出
5. **停止烹饪**:说出 "stop stop stop pot" 停止食物产生
6. **动物出现**:当食物达到一定数量,小动物会从屏幕两侧跑来
7. **特殊彩蛋**:草莓或西瓜达到一定数量时,小女孩会从右侧出现
## 技术栈
- **前端框架**:HTML5 Canvas + JavaScript
- **语音识别**:Web Speech API
- **文生图API**:集成AI图像生成服务
- **动画引擎**:自定义粒子系统
- **音频处理**:Web Audio API
## 项目结构
```
MagicPot/
├── index.html # 主页面
├── css/
│ └── style.css # 样式文件
├── js/
│ ├── main.js # 主游戏逻辑
│ ├── voice.js # 语音识别模块
│ ├── pot.js # 魔法锅类
│ ├── particles.js # 粒子系统
│ ├── animals.js # 动物系统
│ └── textToImage.js # 文生图API接口
├── assets/
│ ├── images/ # 图片资源
│ ├── sounds/ # 音效文件
│ └── fonts/ # 字体文件
└── README.md
```
## 安装和运行
1. 克隆项目到本地
2. 使用本地服务器运行(推荐使用 Live Server 或 Python HTTP Server)
3. 在浏览器中打开,允许麦克风权限
4. 开始游戏!
## 开发计划
- [x] 项目结构搭建
- [x] 语音识别功能
- [x] 魔法锅UI设计
- [x] 文生图API集成
- [x] 粒子系统实现
- [x] 动物生成系统
- [x] 彩蛋功能
- [x] 游戏状态管理
## 快速开始
### 方法一:使用 Python HTTP 服务器
```bash
# 在项目根目录运行
python -m http.server 8000
# 然后在浏览器中访问 http://localhost:8000
```
### 方法二:使用 Node.js
```bash
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
### 方法三:直接打开文件
直接用浏览器打开 `index.html` 文件(某些功能可能受限)
## 游戏控制
### 语音命令
- **"cook cook cook pot"** - 激活魔法锅
- **说出食物名称** - 开始烹饪(如:apple, banana, pizza等)
- **"stop stop stop pot"** - 停止食物涌出
### 键盘快捷键
- **F12** - 切换调试信息显示
- **F11** - 测试所有音效
- **F10** - 切换音效开关
- **Ctrl+Shift+I** - 配置文生图API密钥
- **ESC** - 关闭帮助窗口
### 界面功能
- **🔊 音效按钮** - 点击切换音效开关
- **❓ 帮助按钮** - 点击查看详细的语音命令帮助
- **🎤 语音状态指示器** - 显示当前语音识别状态
- **💬 实时语音显示** - 实时显示用户的语音输入内容
- **📊 性能监控** - 实时显示粒子数、动物数和FPS(烹饪时自动显示)
## 支持的食物
### 水果类
- apple (苹果) 🍎
- banana (香蕉) 🍌
- orange (橙子) 🍊
- strawberry (草莓) 🍓 *彩蛋*
- watermelon (西瓜) 🍉 *彩蛋*
- grape (葡萄) 🍇
### 主食类
- pizza (披萨) 🍕
- burger (汉堡) 🍔
- bread (面包) 🍞
- rice (米饭) 🍚
- noodles (面条) 🍜
### 甜点类
- cake (蛋糕) 🍰 *特殊效果*
- cookie (饼干) 🍪
### 其他
- cheese (奶酪) 🧀
- fish (鱼) 🐟
- chicken (鸡肉) 🍗
## 特殊功能
### 彩蛋功能
- **草莓/西瓜彩蛋**:当草莓或西瓜数量达到30个时,小女孩会从右侧出现
- **生日蛋糕特效**:制作蛋糕时会有特殊的生日庆祝效果
- **百食庆祝**:制作100个食物时会有烟花庆祝效果
### 动物系统
不同的食物会吸引不同的小动物:
- 🍎 苹果 → 🐰 兔子
- 🍌 香蕉 → 🐵 猴子
- 🍊 橙子 → 🐦 小鸟
- 🍓 草莓 → 🐻 熊
- 🍉 西瓜 → 🐘 大象
- 🍕 披萨 → 🐱 猫咪
- 🍔 汉堡 → 🐶 小狗
## 技术特性
### 语音识别
- 使用 Web Speech API
- 支持英文语音识别
- 自动重启和错误处理
- 实时状态显示
### 粒子系统
- 食物涌出效果
- 魔法粒子特效
- 蒸汽动画
- 庆祝烟花效果
### AI图片生成
- 支持文生图API集成
- 本地缓存机制
- 备用表情符号显示
- 可配置API密钥
### 动画效果
- 卡通手绘风格
- 流畅的Canvas动画
- 粒子物理系统
- 动物AI行为
### 音效系统
- **程序化音效生成**:使用Web Audio API实时生成音效
- **丰富的音效类型**
- 🪄 魔法激活音效(上升音调带颤音)
- 🫧 烹饪冒泡音效(随机频率变化)
- 💥 食物弹出音效(短促爆破声)
- 🐦 动物出现音效(鸟叫声)
- 🔔 小女孩出现音效(闪亮铃声)
- 🎺 庆祝音效(三和弦号角声)
- 💨 停止音效(风声效果)
- **智能音效控制**:可开关、音量控制、随机音调变化
- **性能优化**:预生成音效缓存,避免实时计算
### 性能优化
- **内存管理**:智能控制粒子和动物数量上限
- **自动清理**:定期清理过期和无效对象
- **性能监控**:实时显示FPS、粒子数、动物数
- **资源限制**
- 最大粒子数:150个
- 最大动物数:8只
- 最大食物数:100个
- 地面粒子上限:80个
## 浏览器兼容性
### 推荐浏览器
- Chrome 80+
- Edge 80+
- Firefox 75+
- Safari 14+
### 必需功能
- Web Speech API(语音识别)
- Canvas 2D API(游戏渲染)
- Web Audio API(音效支持)
- ES6+ 支持
## 故障排除
### 语音识别不工作
1. 检查浏览器是否支持 Web Speech API
2. 确保已允许麦克风权限
3. 检查网络连接(某些浏览器需要HTTPS)
### 文生图功能不工作
1. 按 Ctrl+Shift+I 配置API密钥
2. 检查API密钥是否有效
3. 即使没有API,游戏也会使用备用图片正常运行
### 性能问题
1. 按F12查看调试信息
2. 检查粒子数量是否过多
3. 尝试刷新页面重置游戏
## 开发说明
### 项目结构
```
MagicPot/
├── index.html # 主页面
├── css/style.css # 样式文件
├── js/ # JavaScript模块
│ ├── main.js # 主游戏逻辑
│ ├── voice.js # 语音识别
│ ├── pot.js # 魔法锅类
│ ├── particles.js # 粒子系统
│ ├── animals.js # 动物系统
│ └── textToImage.js # 文生图API
├── assets/ # 资源文件
│ ├── images/ # 图片资源
│ └── sounds/ # 音效文件
└── package.json # 项目配置
```
### 扩展开发
- 添加新食物:在各个模块的映射表中添加新条目
- 添加新动物:扩展 `animals.js` 中的动物类型
- 添加新特效:在 `particles.js` 中创建新的粒子类型
- 添加音效:在相应的事件中调用音频播放函数
## 许可证
MIT License - 详见 LICENSE 文件