我正在尝试每隔随机秒生成一个随机数(最终目的是不时随机地更改块的颜色)。
为此,我使用 Hump 库 (http://vrld.github.io/hump/#hump.timer)。
这是我目前的代码,我是 LUA/Love2d 编码的真正初学者。 它生成一个数字,并每秒显示它,而不是每隔随机秒......(但也会生成随机秒)。 我真的不明白为什么它不起作用。
local Timer = require "timer"
function love.load()
text="t"
number2=1
end
local f = function()
math.randomseed(os.time())
number = math.random( 2,10 )
text="in " .. number2 .. " seconds (random)... random number =" .. number
return true
end
function love.update(dt)
number2 = math.random( 2,4 )
Timer.update(number2)
Timer.addPeriodic(number2, f)
end
function love.draw()
love.graphics.print( text, 330, 300 )
end
感谢您的帮助!
虽然我不熟悉 Hump,但似乎您可以轻松地使用计时器的 add 函数来达到您的目的,因为它会在 x 秒后调用该函数一次,从而允许您以不同的延迟安排下一次执行:
local timer = require("timer")
local text = ""
local function tick()
-- Generate random number
local newNumber = math.random(2, 10)
local newDelay = math.random(2, 4)
text = ("Current number: %d, next in %d seconds!"):format(newNumber, newDelay)
-- Actually schedule the next call
timer.add(newDelay, tick)
end
function love.load()
tick()
end
function love.update(dt)
timer.update(dt)
end
function love.draw()
love.graphics.print(text, 330, 300)
end