4.5 KiB
4.5 KiB
握力环训练趣味化:捏碎特效 + 卡路里统计
Goal
为握力环训练增加趣味性和成就感,通过视觉特效(捏碎物品)和数据反馈(卡路里消耗)提升用户训练动力。
What I already know
当前握力环训练实现:
- 基础动画:绿色圆环缩放(scale 1 → 0.65)
- 训练流程:开始 → 训练中(显示组数/次数)→ 休息 → 完成
- 配置:80 BPM,4组×20次,45秒休息
- 节拍器同步:跟随 BPM 播放音效
用户需求:
- 捏碎特效:完成几次后触发特效(如捏碎鸡蛋)
- 卡路里统计:训练完成后显示消耗卡路里 + 食物对比
技术约束:
- 使用 uni-app + Vue 3
- 动画可用 CSS 或 Canvas
- 需要保持 60fps 流畅度
Assumptions (temporary)
- 捏碎特效每完成 N 次触发一次(N 待定)
- 卡路里计算基于握力环训练的标准公式
- 食物对比使用常见食物(如苹果、鸡蛋、米饭等)
Open Questions
捏碎特效触发频率:✅ 随机触发(平均每 8-12 次)捏碎物品种类:✅ 4 种物品(鸡蛋🥚、核桃🥜、易拉罐🥫、气球🎈)特效实现方式:✅ Canvas 粒子动画(叠加层 + 物理模拟)卡路里计算公式:✅ 标准 MET 公式(默认 60kg 体重)食物对比展示:✅ 自动匹配最接近的食物(5 种备选)用户体重获取:✅ 使用默认值 60kg(暂不支持自定义)
Requirements (evolving)
1. 捏碎特效
- 随机触发(平均每 8-12 次触发一次)
- 4 种可捏碎物品:鸡蛋🥚、核桃🥜、易拉罐🥫、气球🎈
- 随机选择物品(增加惊喜感)
- 特效流畅(60fps)
- 配合 MiMo TTS 语音鼓励("加油"、"太棒了"等)
- 无需指导视频(用户跟节拍器节奏训练)
2. 卡路里统计
- 使用标准 MET 公式计算卡路里消耗
- 公式:
卡路里 = 3.5 × 60(kg) × 运动时长(小时) - 默认体重 60kg,80 次训练 ≈ 3.5 kcal
- 公式:
- 训练完成后显示消耗卡路里
- 自动匹配最接近的食物对比
- 5 种备选:苹果🍎、鸡蛋🥚、巧克力🍫、香蕉🍌、米饭🍚
- 显示格式:"相当于 X/Y 个{食物}"
- 暂不支持自定义体重(未来可扩展)
3. 完成页面优化
- 显示训练总结(组数、次数、时长、卡路里)
- 成就感反馈(如"太棒了!💪")
- 分享功能(可选)
Acceptance Criteria
- 捏碎特效随机触发(平均每 8-12 次)
- 4 种捏碎物品随机出现(鸡蛋/核桃/易拉罐/气球)
- 粒子动画流畅(60fps)
- 卡路里计算准确(基于标准 MET 公式)
- 食物对比自动匹配最接近的食物
- 完成页面显示训练总结(组数、次数、时长、卡路里、食物对比)
- 动画无卡顿,特效与握力环动画同步
Definition of Done
- 代码实现完成并测试通过
- 动画性能达标(60fps)
- UI/UX 符合设计规范
- 无明显 bug
Out of Scope (explicit)
- 训练数据持久化(本地存储/云端同步)
- 社交分享功能
- 多人排行榜
- 自定义用户体重(未来可扩展)
- 累计卡路里统计(本版本仅显示单次)
- 其他器械的趣味化(本任务仅限握力环)
Research References
research/calorie-calculation.md— 握力环训练卡路里计算公式与食物对比方案
Technical Notes
相关文件:
TUICallKit-Vue3/training/pages/index.vue- 主训练页面TUICallKit-Vue3/training/pages/components/exercise-anim.vue- 动画组件TUICallKit-Vue3/training/pages/exercises.ts- 训练配置TUICallKit-Vue3/training/hooks/useTrainingSession.ts- 训练流程管理
握力环当前动画:
- 绿色圆环(240rpx)+ emoji 图标(🟢)
- CSS scale 动画:1 → 0.65 → 1
Canvas 粒子特效方案:
- 透明 Canvas 叠加在握力环上方
- 在 scale 0.65 峰值时触发粒子爆炸
- 粒子系统:20 个粒子,径向扩散 + 重力 + 衰减
- 物品配置:4 种(鸡蛋/核桃/易拉罐/气球),不同颜色
- 参考
walker-canvas.vue的冲击波实现
卡路里计算方案:
- 标准 MET 公式:
卡路里 = 3.5 × 体重(kg) × 时长(小时) - 详细研究报告:
research/calorie-calculation.md - 典型消耗:60kg 用户,80 次 ≈ 3.5 kcal
- 食物对比库:苹果🍎、鸡蛋🥚、巧克力🍫、香蕉🍌、米饭🍚