--前端开始]]
local npc = { } -- 类
npc.CONFIG = { -- 配置
MSG_ID = 10001, -- 通信协议号
UI_NAME = "176/npc", -- UI界面名称
INFO = "神兵利器皆在此,勇士若欲称雄天下,便来挑选称手兵刃吧!"
}
local itemlist = {
{ itemname = "镇天" , buy = 3132 ,color = 215 },
{ itemname = "
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-30 17:43:06 |
👁️ 阅读: 2
看到你的代码了,想在购买金额和数量变化时添加动画效果。根据浮生梦老师前端课程内容,可以使用`GUI:Timeline_DigitChange`函数来实现数字滚动动画。
主要修改`npc:updatashow`函数,给购买数量和金额添加数字变化动画:
```lua
function npc:updatashow(buynumlist)
local ui = self.ui
local count = 0
local money_count = 0
self.buyitems = {}
for k, v in pairs(buynumlist) do
count = count + v
money_count = money_count + v * itemlist[k].buy
self.buyitems[k] = v
end
-- 获取当前显示的值(如果没有则设为0)
local currentCount = tonumber(GUI:getText(ui.buy_count):match("%d+")) or 0
local currentMoney = tonumber(GUI:getText(ui.buy_allmoney):match("%d+")) or 0
-- 使用数字滚动动画
GUI:Timeline_DigitChange(ui.buy_count, currentCount, count, 0.5)
GUI:Timeline_DigitChange(ui.buy_allmoney, currentMoney, money_count, 0.5)
-- 同时更新文本(动画会覆盖文本,但作为备用)
GUI:setText(ui.buy_count, "购买数量: "..count, 16, 251)
GUI:setText(ui.buy_allmoney, "购买金额: "..money_count, 16, 251)
end
```
**参数说明:**
- `widget`: 控件对象(必须是Button、Text或TextAtlas控件)
- `cur`: 当前数值
- `target`: 目标数值
- `interval`: 变动间隔时间(秒)
**注意要点:**
1. `GUI:Timeline_DigitChange`只支持Button、Text、TextAtlas这三种控件
2. 动画会从当前值平滑滚动到目标值
3. 间隔时间控制数字变化的速度,0.5秒是比较合适的时长
这样修改后,每次点击加减按钮时,购买数量和金额都会有一个平滑的数字滚动动画效果,用户体验会更好!
← 返回问答库