[英]How do I pass the physics object between modules in the Corona Sdk
main.lua
local physics = require("physics")
local actor = require("actor")
physics.start()
//here physic is not nil
local a = Actor.new(200, 200, physics)
actor.lua
function Actor:new(x, y, physic)
//here physic is nil
end
我怎么不能將物理對象傳遞給另一個模塊?
在Lua中,在表中定義函數時必須小心:是否使用.
或:
在actor.lua
定義Actor:new(x,y,phys)
,這意味着Actor:new
的主體中存在一個隱式的self
參數; 此self
將引用包含的Actor
表,並且是對Actor:new
的調用中的第一個參數。 在main.lua
您調用Actor.new(200, 200, physics)
:注意點而不是冒號,因此第一個參數是200,表示self
將是200, x
將是200, y
將是physics
和phys
將為零。 你應該改變調用new
或定義new
,一方或另一方。 例如在main.lua
:
local a = Actor:new(200, 200, physics)
還需要注意的是,如果你的actor.lua
不返回任何東西,然后local actor
在main.lua
將是nil
。 看起來您可能main.lua
Actor
表定義為全局表,因此您可以在main.lua
引用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.