File size: 7,654 Bytes
ab5909a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | ---
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 文件
|