Lua 使数字过渡平滑
我有一个变量,当调用函数时,它会乘以1.01。我想要的是,不要仅仅看到变量“跳跃”到另一个值,而是看到它平稳地逐渐增加,直到它达到那个值 例如:Lua 使数字过渡平滑,lua,Lua,我有一个变量,当调用函数时,它会乘以1.01。我想要的是,不要仅仅看到变量“跳跃”到另一个值,而是看到它平稳地逐渐增加,直到它达到那个值 例如: x = 1000 function gets called x = x * 1.01 --> x value is now 1010, but when I show it on screen, I would like it to go 1000, 1001, 1002,...,1010 in certain amou
x = 1000
function gets called
x = x * 1.01
--> x value is now 1010, but when I show it on screen, I would like it to go 1000, 1001, 1002,...,1010 in certain amount of time
--> instead of just 1000 -> 1010
到目前为止,我的代码是:
function Multiply()
local random = math.random(1, 102)
if random ~= 1 then
Multiplier = Multiplier * 1.01
MultiplierDisplay.text = "x" .. string.format("%.3f", Multiplier)
Gain = Multiplier * PlaceYourBetTextField.text - PlaceYourBetTextField.text
GainDisplay.text = "Gain: " .. string.format("%.0f", Gain)
else
timer.cancel(MultiplyTimer)
Multiplier = 1
end
end
MultiplyTimer = timer.performWithDelay(125, Multiply, 0)
您必须选择完成此转换所需的时间。 我假设,因为你在乘法,你会想要一个恒定的几何变化,而不是一个恒定的算术变化 你会的
local x=1000
local x0=0
local x1=0
local time0=0
local time1=0
local function changex(newx,time)
x0=x
x1=newx
time0=os.clock()
time1=time0+time
end
然后是主循环:
while true do
local t=os.clock()
if t<time0 then
x=x0
elseif t<time1 then
local tratio=(t-time0)/(time1-time0)
x=x0*(x1/x0)^tratio
else
x=x1
end
pause()
end
为true时执行
本地t=os.clock()
如果曹。。。编辑:我重新措辞了我的问题,我问错了,很抱歉。我不知道该怎么做。。。当我的函数将大数相乘时,它只是从10000跳到10100。我想一个接一个去。这有点难以解释。。。希望有人能做到。我完全理解你的问题。我的问题是你做了什么来试图解决它?显然,您不会认为数字会神奇地接受中间值,因此显然您需要编写一些代码来实现这一点。您试图编写什么代码来实现这一点?你尝试过什么算法?我尝试过使用transition.to,但显然不起作用。我还试着把定时器的延迟时间改为50毫秒,但这对我的需要来说太快了。我将编辑我的帖子,这样你们就可以检查我的函数了。for循环应该是一个相当简单但非常有效的解决方案。