-- 明确设置动画起点和终点
local startX = 255
local startY = 281
local targetX = 77
local targetY = 281
-- 计算移动距离
local moveX = targetX - startX --
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-11 20:40:42 |
👁️ 阅读: 15
```lua
-- 明确设置动画起点和终点
local startX = 255
local startY = 281
local targetX = 77
local targetY = 281
-- 计算移动距离
local moveX = targetX - startX -- 77
local moveY = targetY - startY -- 0
GUI:stopAllActions(ui.Image_14)
GUI:setPosition(ui.Image_14, startX, startY)
GUI:setVisible(ui.Image_14, true)
local callback = function()
SL:print("Image_9动画完成,已固定在最终位置")
end
GUI:runAction(ui.Image_14, GUI:ActionSequence(
GUI:ActionScaleTo(0.5, 1.4),
GUI:ActionScaleTo(0.5, 1),
GUI:ActionMoveBy(0.5, moveX, moveY),
GUI:CallFunc(callback)
))
if curlevel == 2 then
-- 明确设置动画起点和终点
local startX = 255
local startY = 281
local targetX = 144
local targetY = 189
-- 计算移动距离
local moveX = targetX - startX -- 77
local moveY = targetY - startY -- 0
GUI:stopAllActions(ui.Image_14)
GUI:setPosition(ui.Image_14, startX, startY)
GUI:setVisible(ui.Image_14, true)
local callback = function()
SL:print("Image_9动画完成,已固定在最终位置")
end
GUI:runAction(ui.Image_14, GUI:ActionSequence(
GUI:ActionScaleTo(0.5, 1.4),
GUI:ActionScaleTo(0.5, 1),
GUI:ActionMoveBy(0.5, moveX, moveY),
GUI:CallFunc(callback)
))
end
```
代码检查结果:
1. **计算错误**:第二个动画的移动距离计算有误
- `moveX = 144 - 255 = -111`(不是77)
- `moveY = 189 - 281 = -92`(不是0)
2. **建议修改**:
```lua
-- 第二个动画的正确计算
local moveX = targetX - startX -- 144-255 = -111
local moveY = targetY - startY -- 189-281 = -92
```
3. **代码规范**:
- 所有函数调用都符合996引擎规范
- 动画序列使用正确:缩放→缩放→移动→回调
- 使用了`GUI:stopAllActions()`防止动画叠加
下次注意计算移动距离时要仔细检查起点和终点的坐标值,避免这种低级错误!
← 返回问答库