Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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

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
Lua 如何等待LOVE2D中给出条件?_Lua_Wait_Repeat_Love2d - Fatal编程技术网

Lua 如何等待LOVE2D中给出条件?

Lua 如何等待LOVE2D中给出条件?,lua,wait,repeat,love2d,Lua,Wait,Repeat,Love2d,我试过了 timer.script(function(wait) repeat wait(0) until condiction end) 但它不起作用。请帮帮我 并不是专门为你想做的事情而设计的,尽管它可能会起作用 LÖVE框架是围绕draw()和update()回调构建的,我建议您先学习如何使用这些回调来完成这项任务,然后再继续使用这些回调之上的方法层。当您的条件第一次满足时,类似这样的操作应该只运行代码一次: local hasHappened = false function

我试过了

timer.script(function(wait)
repeat
    wait(0)
until condiction
end)
但它不起作用。请帮帮我

并不是专门为你想做的事情而设计的,尽管它可能会起作用

LÖVE框架是围绕
draw()
update()
回调构建的,我建议您先学习如何使用这些回调来完成这项任务,然后再继续使用这些回调之上的方法层。当您的条件第一次满足时,类似这样的操作应该只运行代码一次:

local hasHappened = false
function love.update(dt)
  if (condition and not hasHappened) then
    hasHappened = true
    -- respond to condition here
  end
end
通常,您不会直接在
love.update()
中检查您的状况。相反,您将拥有一个包含游戏中所有对象的表,在
love.update()
中,您将循环遍历此对象表,并对每个对象调用
update()
方法。这使每个对象都有机会检查并响应不同的条件

另一种方法是命名您的条件,并在条件发生时使用类似于触发事件(以及任何注册的回调函数)的事件系统

或者(如果在
love.update()
中调用计时器的update()),您可以使用计时器对象和
every()
方法执行此操作:

local handle = timer:every(0.01, function()
  if condition then
    -- unregister timer, assuming you only want the code to be run once
    timer:cancel(handle)

    -- respond to condition here
  end
end)

这不是一个正确的错误描述。还请阅读,不清楚您在等待什么,以及您是否想在等待时做其他事情。您还应该提供更多的代码和上下文。什么是timer.script?我只能假设它来自驼峰库,如果,如果你什么都不做,只等待0秒,你期望会发生什么?你是在寻找一个函数来调用一个给定的事件(即,一个回调函数,用于每次按下一个键都会触发的按键)或者类似于do while循环的东西?我使用了hump.timer和timer.script,它是一种使用
wait
而不是
timer的方法。在
之后如何使用timer.cancel?arturgps2:a
timer
实际上更像一个时钟,因为它同时管理多个计时器。要取消计时器,如上面代码示例中的
every()
,您需要存储特定
:every()
计时器的句柄(引用),如上所述,并将其作为第一个参数传递给
cancel()
。注意使用冒号
:cancel
代替点符号
。cancel
,因为这是一个方法调用。这就是我所能想到的,如果你有更多的问题,你需要更具体一点。实际上我忘记了
timer.update
love.update
,但这个建议也帮了我。谢谢你的帮助。