首页 > 解决方案 > Defold timer.delay函数参数

问题描述

我对如何使用 timer.delay 函数感到困惑。我知道第一个参数是延迟秒数;二是是否应该重复;第三个是在计时器耗尽后使用的回调函数。据我了解,回调是作为参数的另一个函数。不过,defold 网站上的页面提供了一个已插入参数的函数

      callback function(self, handle, time_elapsed) timer callback function

我正在尝试使用 timer.delay 函数,例如

timer.delay(5, false, pr(self, "handle", "2"))

function pr()
    print("Function activated")

标签: luadefold

解决方案


callback参数是一个将被调用的函数。当您的计时器触发时调用此函数。如果需要,它将使用 3 个参数调用,您可以在回调函数中使用这些参数。

文档中function(self, handle, time_elapsed)的 告诉您如何调用回调函数。第一个参数是 self,第二个是计时器句柄,第三个是经过的时间。

你可以这样做:

local function myCallback(obj, handle, elapsed)
  print("Timer with handle " .. handle .. " triggered after " .. elapsed .. "s")
end

timer.delay(10, true, myCallback)

或者只是提供一个匿名函数:

timer.delay(10, true, function (obj, handle, elapsed)
    print("Timer with handle " .. handle .. " triggered after " .. elapsed .. "s")
  end)

推荐阅读