Skip to content

v1.2.2 动作切换交叉淡入,不再生硬

Choose a tag to compare

@fotlim fotlim released this 18 Oct 06:09
· 5 commits to main since this release

桌面宠物 DesktopPet v1.2.2

这一版只改动起来的手感:点击动作 → 动画开始不再生硬。

1. 交叉淡入(250ms)

以前点一下就从待机的某帧「啪」一下跳到动作第一帧。现在切动作时,把「上一帧」和动作第一帧按 6 帧(约 250ms)比例混合过渡:

  • 动作开始:动作过渡:cat 交叉淡入 6 帧(250ms)
  • 动作播完:动作过渡:idle 交叉淡入 6 帧 —— 回待机也是淡入,不再突然换姿势
  • 淡入起点在建帧之前先拷一份(建帧会释放旧帧缓存,直接拿句柄会 GDI+ 报错)

2. 载入时不再定住画面

建帧(241 帧 PNG 解码 + 垫画布)原来是在点击处理里同步跑完的,期间窗口完全不动。现在每 8 帧跑一次消息循环,载入过程里宠物继续播待机动画,不会「卡一秒然后突然跳」。

代价:载入那 1 秒左右渲染帧率会掉到 13~16 fps(日志里能看到),载入完成后恢复 24 fps。

3. 其它

  • 上一版把帧缓存收紧到 2 个动作,释放帧时会清掉「上一帧」指针,避免淡入拿到已释放的位图
  • 素材没变(24fps / 241 帧 / 318×200 画布)

升级

解压覆盖(别动 settings.json),托盘退出再 start.bat。