增加胜利结算动画
广告
{{v.name}}
📋 原始需求(task.md):

在结算对话框中显示领奖台,领奖台上站第1名到第3名的选手。如果领奖台上的选手有自己,那么允许自己按R键做胜利结算动画

在跨栏王子的结算对话框中新增领奖台:第 1/2/3 名选手分别站上中间金牌位、左侧银牌位、右侧铜牌位(高度依次降低)。如果玩家进入前三名,则对话框下方显示"你在领奖台上!按 R 跳胜利舞"提示,按 R 键(或底边栏的 R 按钮)即可让领奖台上的玩家运动员执行胜利舞蹈动画(身体起伏 + 旋转)。


问题分析

原结算仅显示 9 人排名列表,缺少"前三名"这一仪式感元素。

原 R 键仅在游戏过程中、且 `player.finished` 后才生效,不能在结算对话框中操作。

缺少结算后的动画驱动——一旦 RAF 被取消,运动员的腿臂摆动立刻停止,界面显得呆滞。


解决方案

1) 新增 podium computed:取 finishTime 升序前 3 名,并按"2-1-3"顺序排序(中间最高)。2) CSS 新增 .podium.podium-slot.podium-runner.podium-block,使用金/银/铜渐变 + 🥇🥈🥉 徽章。3) onKeygameOver 状态下响应 R 键(限定前三名),切换 player.dancing 状态触发 CSS dance 关键帧。4) endGame 后启动 celebrateLoop,让 podium 上三名选手继续摆动腿臂(驱动 animT)。

友链