Digimon 暴龙机电子宠物项目

项目概述

仿数码宝贝暴龙机,制作一款电子宠物设备。核心玩法:孵化数码蛋 → 养成幼年期 → 进化为成长期/成熟期 → 对战/联机。ESP32 为主控,OLED 显示像素风动画,蜂鸣器播放 8-bit 音效,按键交互。

分工

  • 软件负责人:固件开发、游戏逻辑、动画系统、通信协议
  • 硬件负责人:电路设计、PCB 打样、外壳 3D 建模/打印、焊接组装

软件架构

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
┌─────────────────────────────────────┐
│ 应用层 (App) │
│ ┌─────────┐ ┌──────────────────┐ │
│ │ 游戏状态机 │ │ 菜单系统 │ │
│ │ (孵化/养成 │ │ (状态/喂食/ │ │
│ │ 进化/对战)│ │ 训练/设置) │ │
│ └─────────┘ └──────────────────┘ │
├─────────────────────────────────────┤
│ 业务逻辑层 (Logic) │
│ ┌──────┐ ┌──────┐ ┌────────────┐ │
│ │宠物属性│ │进化树│ │ 对战引擎 │ │
│ │(饥饿度│ │(条件 │ │ (攻击/防御 │ │
│ │ 心情..)│ │ 判断)│ │ 伤害计算) │ │
│ └──────┘ └──────┘ └────────────┘ │
│ ┌──────────┐ ┌────────────────┐ │
│ │ 时间系统 │ │ 存档管理(NVS) │ │
│ │ (RTC/NTP)│ │ (自动/手动保存)│ │
│ └──────────┘ └────────────────┘ │
├─────────────────────────────────────┤
│ 驱动层 (Drivers) │
│ ┌──────┐ ┌──────┐ ┌────────────┐ │
│ │OLED │ │Buzzer│ │ Vibration │ │
│ │显示 │ │音效 │ │ 震动马达 │ │
│ └──────┘ └──────┘ └────────────┘ │
│ ┌──────┐ ┌──────┐ ┌────────────┐ │
│ │Button│ │ LED │ │ BLE/IR通信 │ │
│ │按键 │ │呼吸灯│ │ (进阶) │ │
│ └──────┘ └──────┘ └────────────┘ │
├─────────────────────────────────────┤
│ 硬件抽象层 (HAL) │
│ ESP32 Arduino / ESP-IDF │
└─────────────────────────────────────┘

开发阶段计划(由简到难)

🔰 阶段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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
数码蛋 (Egg)
│ 孵化时间: 5分钟

幼年期I (Baby I)
│ 进化条件: 喂食 ≥ 3次

幼年期II (Baby II)
│ 进化条件: 训练 ≥ 5次, 心情 > 50%

┌─────────────┬─────────────┐
成长期A 成长期B 成长期C
(疫苗种) (数据种) (病毒种)
攻击型 均衡型 速度型
│ │ │
▼ ▼ ▼
成熟期A 成熟期B 成熟期C
│ │ │
▼ ▼ ▼
完全体A 完全体B 完全体C

技术选型建议

层面 推荐方案 原因
开发框架 Arduino + PlatformIO 库丰富,上手快,跨平台
显示驱动 U8g2 库 支持 SSD1306,字体丰富
时间系统 ESP32 内置 RTC + 定时器 不需要外部模块
存档存储 Preferences (NVS) ESP32 内置,掉电不丢失
音效 ESP32 PWM + tone() 无需额外芯片
版本管理 Git + GitHub 两人协作必备

下一步

  1. 硬件负责人采购元件、搭建面包板原型
  2. 软件负责人搭建 ESP32 开发环境(Arduino IDE 或 PlatformIO)
  3. 阶段1 开始:点亮 OLED + 读取按键