You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Defold中切换行走动画时同步设置游标以保持动画进度

解决方法

在Defold里,你不用分开处理动画切换和游标设置——play_animation消息本身支持在参数里指定cursor,这样就能在切换动画的同时保留当前帧位置,不会让动画从头播放。

把你的代码改成这样就行:

-- 先拿到当前精灵的游标位置
local current_cursor = go.get("#sprite", "cursor")
-- 播放目标动画时直接传入游标参数
msg.post('#sprite', 'play_animation', {
    id = hash('run_5'),
    cursor = current_cursor
})

要是你用的Defold版本比较新,也可以用更简洁的sprite.play_flipbook API,效果完全一致:

local current_cursor = go.get("#sprite", "cursor")
sprite.play_flipbook("#sprite", hash('run_5'), { cursor = current_cursor })

之前的问题出在msg.post是异步操作:你先设置游标,后续执行的动画播放指令会把游标重置为0,导致设置无效。现在把游标参数直接塞进动画播放的消息里,就能让新动画从你想要的帧开始,完美实现“只旋转不重启动画”的效果。

额外提醒:

  • 必须保证8个等距行走动画的帧数完全相同,不然游标对应的帧在新动画里会出现错位
  • 如果角色切换方向时处于静止状态,记得切换到对应方向的 idle 动画,同样用这个方法保留游标

内容的提问来源于stack exchange,提问作者hypnomaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:50:40