 longandCursor
|
a3ee72b34d
|
feat(metronome): walker 区接入卡通跑步小人,跟 BPM 同步律动
- 替换原来两只脚印为一张跑步小人 PNG(static/training/runner.png)
- 静态 PNG + CSS 律动:
· runner-bob keyframes: 1 拍内做"下蹲→起跳→反向倾斜→落地"
四个阶段,模拟跑步身体起伏
· 上下抖动 ±14rpx, 左右轻摆 ±1.5°,scale Y 微妙压缩
· drop-shadow 让人物有立体感
- 阴影同步:runner-shadow-pulse 跟律动反向变化
(跳起时阴影变小变淡 0.2,落地时变大变浓 0.5)
- 动画 duration 绑定 --step-duration = 60000/bpm
· BPM 60 → 1000ms/次,慢悠悠
· BPM 120 → 500ms/次,正常跑
· BPM 180 → 333ms/次,紧张快跑
注意: 用户提供的文件实际是静态 PNG 不是 SVG 动图,
所以是"画面整体律动"而非真正的 walk cycle 关节运动。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 15:45:43 +08:00 |
|
 longandCursor
|
a08031b901
|
style(metronome): 禁止页面上下滚动
- pages.json 给 pages/training/metronome 加 disableScroll: true
(微信小程序级别禁滚动,主要避免下拉刷新和顶部回弹)
- .page CSS 改 min-height → height: 100vh + overflow: hidden
(双保险,防止 iOS 橡皮筋效果与内容超出滚动)
- 内容元素 gap 28→24rpx,微调避免内容被裁
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 14:15:36 +08:00 |
|
 longandCursor
|
665481a6d8
|
style(footprint): 圆润脚跟,告别尖锐 V 形
之前两段曲线都汇聚到 (50,138) 一点,且控制点位置偏下,
形成尖锐 V 形脚跟。修复:
- 脚跟底中心 (50,138) → (50,140),稍微下移
- 内侧弧控制点 (38,130) → (30,122)(40,140),从靠肩部
渐进到水平方向,切线在底部呈水平,不再向下尖收
- 外侧弧对称处理 (60,140)(70,122)
- 进入和离开脚跟底心时切线都水平,视觉上变成圆润 U 形
- 整体高度 138 → 140,viewBox 100x150 不变
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 13:02:39 +08:00 |
|
 longandCursor
|
30b344b776
|
style(metronome): 脚印重画为葫芦型,告别椭圆感
之前的 SVG path 内外侧太对称,看起来还是椭圆。重新设计:
- viewBox 100x140 → 100x150 (拉长比例 1:1.5,更"瘦长")
- 主体 path 内侧凹陷 + 外侧饱满,形成葫芦轮廓:
· 内侧足弓 x 收到 22 (凹陷)
· 外侧饱满 x 推到 78 (凸出)
· 前足比脚跟略宽,模拟真实脚型
- 5 个脚趾:
· 拇趾 rotate(-18°) 内侧明显倾斜
· 小趾 rotate(+22°) 外侧外展
· cy 沿弧线 22→11→9→13→20,形成自然弧形
· rx 从 6.5 递减到 3.5,大小过渡更自然
- 容器尺寸从 100x140 → 96x144,匹配 SVG 新比例
- walker 高度 200→220rpx 以容纳抬脚动画上限
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 12:49:36 +08:00 |
|
 longandCursor
|
e104249707
|
style(metronome): 脚印改用 SVG 矢量,单笔成型告别卡通感
div 拼接(椭圆+5 个圆)无论怎么调都摆脱不了"青蛙脚"既视感,
根本原因是 div 画不出曲线轮廓。改用 SVG path 单笔成型:
- 新增 static/training/footprint.svg(775B)
· path 一笔走完:前足→足弓凹陷→脚跟,模拟真实脚印拓印
· 5 个脚趾用 ellipse + rotate 转角,大小递减(7.2→3.8rpx)
· 内侧(拇趾侧)凹陷、外侧饱满,符合解剖学
· 单色 #e2e8f0 fill-opacity 0.92,接近湿沙脚印质感
- metronome.vue:
· 模板:删 heel + 5×toe,改用 image src=footprint.svg
· CSS:删除 70+ 行 heel/toe 位置定位,只保留 footprint 容器
· 左脚保持 scaleX(-1) 镜像,动画 keyframe 不变
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 12:45:17 +08:00 |
|
 longandCursor
|
9b6d9ce007
|
refactor(metronome): 整体视觉重设计 - 现代极简风
脚印拟真化:
- 颜色 鲜绿 → 浅白(rgba 241,245,249,0.92),降低饱和不再卡通
- 形状更紧凑:脚趾紧贴脚掌、大小递减弧形排布(22→18→16→14→12rpx)
- 不规则 border-radius 模拟真实脚印轮廓
- 移除多余渐变和厚重 box-shadow
布局重组(卡片化):
- 走路区域 + 配速 badge + 状态提示 → walker-card 统一卡片
- BPM 调节 + 拍号选择 → control-card 统一卡片
- 卡片背景 rgba(255,255,255,0.035) + 1rpx 描边,有 backdrop-blur
- 移除独立 hint 区,合并到 walker-card 顶部
控件精修:
- BPM 步进按钮 高度 120→96rpx,字号 44→38rpx,圆角更小
- 拍号选择器改为 iOS 风药丸式 segmented control,放在右侧
- 主圆 460→420rpx,BPM 字号 200→180rpx,腾出空间给下方
- "速度"标签 → "BPM"(更专业)
配速 badge 智能变色:
- <100 BPM 绿(健走)
- 100-129 黄(快走)
- 130-169 橙(慢跑)
- ≥170 红(快跑)
设计 token 抽取:
- 在 SCSS 顶部定义 $bg-grad / $card-bg / $text-* / $brand 等变量
- 圆角统一:卡片 28rpx, 按钮 20rpx, 药丸 999rpx
- 间距统一:卡片间距 28rpx, 控件间隔 14rpx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 12:18:29 +08:00 |
|
 longandCursor
|
69da8066a6
|
feat(metronome): 节拍器下方加脚步行走动画
- 节拍器圆下方新增"脚印踏步"动画区域
· 纯 CSS+SVG-like(div 拼接),不依赖 canvas/Lottie/视频
· 左右脚交替踏步,起脚时落地阴影变小变淡,落地时变大变浓
· 1 拍 1 步,左右各占半周期(animation-delay 错相 0.5)
- 跟节拍器同步:CSS 变量 --step-duration = 60000/bpm,BPM 改了
步频立刻跟着变;暂停时 animation-play-state 自动停
- 智能配速提示:
· <70 BPM 慢走 · 适合热身
· 70-99 健走 · 日常配速
· 100-129 快走 · 心率提升
· 130-169 慢跑 · 进入有氧
· ≥170 快跑 · 高强度
- 重构 ringStyle/coreStyle 为统一 rootStyle,挂在根节点用
CSS 变量级联(--beat-duration / --step-duration)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 12:10:44 +08:00 |
|
 longandCursor
|
edc9993403
|
fix(metronome): 修复 iOS 真机静音键模式下无声音
iOS 微信小程序的 InnerAudioContext 默认会受系统侧边静音键影响,
单实例 obeyMuteSwitch = false 在 iOS 上不可靠,必须调用全局
API setInnerAudioOption 才能正常发声。
- App.vue onLaunch 调用 uni.setInnerAudioOption({
obeyMuteSwitch: false, mixWithOther: true })
- useMetronome.preload() 进页面时再调一次保险
- AudioPool.play() 改用 stop() + play() 替代 seek(0) + play(),
iOS 上 seek(0) 不一定能复位播放进度
- 预热改用 volume 0.01 极小音量替代 volume 0,iOS 上音量为 0
可能不会真正完成音频解码
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 11:48:16 +08:00 |
|
 longandCursor
|
8f14f3190e
|
fix(metronome): 修复第二拍延迟两倍间隔的 bug
drift correction 逻辑写反了:
drift = now - nextTickAt (此时为负数,下一拍还在未来)
nextDelay = intervalMs - drift ❌ = 2 × intervalMs
正确做法直接计算"目标时刻距现在还有多久":
nextDelay = nextTickAt - now ✅
现象:点击开始,第一拍立即响,但第二拍要等两倍拍间隔才响。
现在第一拍响完就立刻按 BPM 节奏进入第二拍。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 11:44:06 +08:00 |
|
 longandCursor
|
2beace89f4
|
feat(TUICallKit-Vue3): 迁入节拍器与练一练训练模块
之前误将训练模块加在 uniapp 项目,实际目标项目是 TUICallKit-Vue3
(甄养堂主小程序壳),整体迁入:
- hooks/useMetronome.ts 节拍器(音频实例池+预热,无冷启动延迟)
- hooks/useTrainingSession.ts 训练 Session 状态机
- hooks/useVoiceCoach.ts 语音教练队列
- hooks/useTrainingBgm.ts 训练/休息 BGM 切换+渐变
- pages/training/index.vue 练一练主页(器械跟练)
- pages/training/metronome.vue 独立节拍器(老人友好版,
中央圆即开始/暂停按钮,纯 CSS 几何 icon,大字大按钮)
- pages/training/components/exercise-anim.vue CSS 动作动画
- pages/training/exercises.ts 5 个器械动作预设
- static/training/audio/*.mp3 3 种 click 音色(MIT 协议)
- scripts/generate-voice.mjs MiMo TTS 批量生成语音脚本
- pages.json 注册 pages/training/index 与 pages/training/metronome
- 「我的」页加 DevTrainingEntry 悬浮入口,生产环境自动隐藏
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-05-25 11:28:55 +08:00 |
|
Your Name
|
a9474356ff
|
更新
|
2026-05-07 16:42:29 +08:00 |
|
Your Name
|
4909ec6daa
|
更新
|
2026-04-10 14:43:58 +08:00 |
|
Your Name
|
fdf714f833
|
新增
|
2026-04-07 18:13:03 +08:00 |
|
Your Name
|
a780356908
|
新增功能
|
2026-04-01 09:46:25 +08:00 |
|
Your Name
|
250d173c2f
|
更新
|
2026-03-23 18:02:16 +08:00 |
|
Your Name
|
18fee2e8f8
|
更新
|
2026-03-20 18:00:19 +08:00 |
|
Your Name
|
d765517b74
|
更新
|
2026-03-20 13:56:40 +08:00 |
|
Your Name
|
7147c8e148
|
新增
|
2026-03-19 12:19:00 +08:00 |
|
Your Name
|
7832514f28
|
更新
|
2026-03-18 14:53:09 +08:00 |
|
Your Name
|
338b104d50
|
更新
|
2026-03-16 16:37:26 +08:00 |
|
Your Name
|
cda63b5ae2
|
更新
|
2026-03-16 15:08:28 +08:00 |
|
Your Name
|
4a853ba237
|
新增功能
|
2026-03-14 15:39:34 +08:00 |
|
Your Name
|
4ddee40675
|
新增功能
|
2026-03-14 11:16:04 +08:00 |
|
Your Name
|
eb283f008b
|
更新
|
2026-03-13 14:08:52 +08:00 |
|
Your Name
|
08dd9cd307
|
更新
|
2026-03-11 14:33:49 +08:00 |
|
Your Name
|
38ad60f4bb
|
更新
|
2026-03-11 09:49:47 +08:00 |
|
Your Name
|
7b76671988
|
更新初级版本
|
2026-03-06 17:30:37 +08:00 |
|
Your Name
|
52bb80e2f1
|
更新
|
2026-03-06 14:27:24 +08:00 |
|