2014-02-16 65 views
0

main.lua我如何通過模塊之間的物理對象的電暈SDK

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 

我怎麼就不能通過物理對象到另一個模塊?

+0

'function Actor.new(x,y,physic)' –

+0

@EgorSkriptunoff這是對問題的評論,或者一個答案? – Schollii

回答

1

在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,和yphysics,而phys將是零。您應該將呼叫更改爲new或其中一個或另一個的定義爲new。例如,在main.lua

local a = Actor:new(200, 200, physics) 

還要注意的是,如果你的actor.lua不返回任何東西,然後在local actormain.luanil。看起來您可能已將Actor表定義爲全局表,因此您可以在main.lua中參考它。