如何定义在lua中具有事件参数的全局函数

时间:2013-10-07 12:51:51

标签: lua corona

假设我有以下功能:

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

将用于许多不同的lua文件。我想在外部文件中定义它,然后对这个文件使用require,所以我不会在每个lua文件中重复它。

问题是当这个函数与以下文件在同一个文件中时(不传递参数)被调用

Runtime:addEventListener( "accelerometer", onTilt )

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

1 个答案:

答案 0 :(得分:3)

您可以尝试这种最小的外部模块布局:

-- external module - file named "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'    

-- ... other code ...

Runtime:addEventListener( "accelerometer", mymodule.onTilt )