如何在Lua中定义一个带有事件参数的全局函数

假设我有以下函数:

function onTilt( event )
    physics.setGravity( (-9.8*event.yGravity), (-9.8*event.xGravity) ) --Το σωστό
end

它将在许多不同的lua文件中使用。我想将其定义在外部文件中,然后使用require来引用此文件,这样我就不必在每个lua文件中重复它。

问题是当它与以下代码在同一个文件中时,该函数会按以下方式调用(不传递参数)

Runtime:addEventListener( "accelerometer", onTilt )

有人能解释一下如何将其定义在外部文件中以及如何调用它吗?

点赞
用户2633423
用户2633423

你可以尝试使用这个最简单的外部模块布局:

-- 外部模块 - 文件名为“mymodule.lua”
local M = {}

function M.onTilt( event )
    physics.setGravity( (-9.8*event.yGravity), (-9.8*event.xGravity) )
end

return M

当需要使用该函数时,您可以编写以下内容(假设mymodule.lua被放置在Lua搜索路径上的目录中):

local mymodule = require 'mymodule'

-- ... 其他代码 ...

Runtime:addEventListener( "accelerometer", mymodule.onTilt )
2013-10-07 13:08:25