簡體   English   中英

如何在Corona Sdk中的模塊之間傳遞物理對象

[英]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將是physicsphys將為零。 你應該改變調用new或定義new ,一方或另一方。 例如在main.lua

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

還需要注意的是,如果你的actor.lua不返回任何東西,然后local actormain.lua將是nil 看起來您可能main.lua Actor表定義為全局表,因此您可以在main.lua引用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM