Digimon 暴龙机电子宠物项目
项目概述
仿数码宝贝暴龙机,制作一款电子宠物设备。核心玩法:孵化数码蛋 → 养成幼年期 → 进化为成长期/成熟期 → 对战/联机。ESP32 为主控,OLED 显示像素风动画,蜂鸣器播放 8-bit 音效,按键交互。
分工
- 软件负责人:固件开发、游戏逻辑、动画系统、通信协议
- 硬件负责人:电路设计、PCB 打样、外壳 3D 建模/打印、焊接组装
软件架构
1 | ┌─────────────────────────────────────┐ |
开发阶段计划(由简到难)
🔰 阶段1:最小可行原型(1-2周)
目标:硬件能亮、屏幕能显示、按键能响应
- 点亮 OLED 屏幕,显示 “Hello Digimon”
- 读取三个按键状态(消抖处理)
- 屏幕显示一个静态像素数码蛋
- 按键切换屏幕显示内容(状态机雏形)
产出:一个能按键切换画面的设备
🌱 阶段2:核心宠物系统(2-3周)
目标:可孵化的宠物,有属性变化
- 宠物数据结构:名字、饥饿度、心情、等级、进化阶段
- 时间系统:RTC 计时,饥饿度随时间增长
- 喂食/玩耍/训练 三种互动
- 数码蛋孵化动画(蛋裂开 → 幼年期出现)
- 蜂鸣器播放简单音效(开机音、互动音)
- LED 呼吸灯指示宠物状态(健康=绿色慢闪,饥饿=红色快闪)
产出:能互动、有属性变化的电子宠物
🔥 阶段3:进化与动画(2-3周)
目标:完整的进化树 + 像素动画
- 进化树设计(幼年期I → 幼年期II → 成长期 → 成熟期 → 完全体)
- 进化条件判断(属性达标 + 特定互动次数 + 时间)
- 进化动画(发光 + 形态变化)
- OLED 像素帧动画系统(宠物待机/进食/玩耍动画)
- 菜单系统(状态查看、喂食、训练、设置)
- 死亡/重生机制(长时间不照顾会死亡,重新从蛋开始)
产出:有完整进化路线和动画的暴龙机
⚔️ 阶段4:对战系统(2周)
目标:本地/对战功能
- 战斗属性系统(HP、ATK、DEF)
- 回合制战斗逻辑
- 战斗动画(攻击闪烁、伤害数字)
- 训练小游戏(按键节奏游戏提升属性)
- 胜率记录与排行榜
产出:可训练、可对战的暴龙机
📡 阶段5:联机功能(3-4周)
目标:两台设备互联对战
- BLE 蓝牙广播与扫描
- 自定义通信协议(对战请求/数据交换/战斗结果)
- 道具交换系统
- 可选:红外通信(致敬原版暴龙机)
- 可选:WiFi 联网排行榜
产出:两台暴龙机可联机对战
宠物进化树(设计草案)
1 | 数码蛋 (Egg) |
技术选型建议
| 层面 | 推荐方案 | 原因 |
|---|---|---|
| 开发框架 | Arduino + PlatformIO | 库丰富,上手快,跨平台 |
| 显示驱动 | U8g2 库 | 支持 SSD1306,字体丰富 |
| 时间系统 | ESP32 内置 RTC + 定时器 | 不需要外部模块 |
| 存档存储 | Preferences (NVS) | ESP32 内置,掉电不丢失 |
| 音效 | ESP32 PWM + tone() | 无需额外芯片 |
| 版本管理 | Git + GitHub | 两人协作必备 |
下一步
- 硬件负责人采购元件、搭建面包板原型
- 软件负责人搭建 ESP32 开发环境(Arduino IDE 或 PlatformIO)
- 阶段1 开始:点亮 OLED + 读取按键