Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 生成一个随机数,但在LUA/Love2d中每随机秒生成一个_Random_Lua_Love2d - Fatal编程技术网

Random 生成一个随机数,但在LUA/Love2d中每随机秒生成一个

Random 生成一个随机数,但在LUA/Love2d中每随机秒生成一个,random,lua,love2d,Random,Lua,Love2d,我试图每随机秒生成一个随机数(最终目的是不时随机更改块的颜色) 为此,我使用了驼峰库() 这是我目前的代码,我是LUA/Love2d编码的真正初学者。 它生成一个数字,并每秒钟显示一次,而不是每随机秒显示一次。。。(但也会生成随机秒数)。 我真的不明白为什么它不起作用 local Timer = require "timer" function love.load() text="t" number2=1 end local f = function() math.rando

我试图每随机秒生成一个随机数(最终目的是不时随机更改块的颜色)

为此,我使用了驼峰库()

这是我目前的代码,我是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

在你的程序中只调用一次
math.randomseed(os.time())
。糟糕的是,我删除了love.update中的一个,但问题仍然存在。在更新的代码中,你仍然在
love.update
中调用
f
,这意味着
math.randomseed
仍然被调用了不止一次。好的,我现在更明白了。我还需要在函数中移动'number2',而不是在'love.update'中调用'f'。。。但是我遇到了一个问题,文本每0.1秒打印一次,所以我再次更改了代码,并提出了一些类似于Henri Ilgen下面建议的东西!