37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# 汪汪大作战(微信小游戏版)
|
|
|
|
对着麦克风喊"汪"来战斗的实时对战小游戏。
|
|
|
|
## 玩法
|
|
|
|
1. 在主菜单选择你的狗狗
|
|
2. 点击"开始游戏"
|
|
3. 倒计时结束后对着麦克风大声、清晰地喊"汪!"
|
|
4. 用声音把能量条推到对方一侧即可 K.O. 获胜
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
├── game.js # 小游戏入口
|
|
├── game.json # 小游戏配置
|
|
├── project.config.json # 微信开发者工具配置
|
|
├── images/wangwang/ # 游戏素材
|
|
│ ├── dogs/ # 狗狗立绘
|
|
│ ├── ui/ # UI 元素
|
|
│ └── enemies/ # 敌人素材(备用)
|
|
└── js/
|
|
├── main.js # 游戏主逻辑
|
|
├── barkDetector.js # 狗叫检测算法
|
|
├── audioRecorder.js # 麦克风录音 + PCM 分析
|
|
├── ai.js # AI 对手
|
|
├── storage.js # 本地存档
|
|
└── render.js # Canvas 初始化
|
|
```
|
|
|
|
## 技术要点
|
|
|
|
- 使用 `RecorderManager.onFrameRecorded` 获取实时 PCM 音频帧
|
|
- 基于 RMS 音量 + 过零率 + 中高频能量的状态机实现"汪"声检测
|
|
- AI 对手采用 IDLE → BARK → COOLDOWN 状态机
|
|
- 使用 `requestAnimationFrame` 驱动 Canvas 2D 游戏循环
|