你可能要麼想通了這一點已經或現在放棄電暈,但即使這樣有一個答案在這裏,我將添加我的兩分錢:
你可以任何你想要的屬性添加到您的球對象。您不必顯式聲明屬性 - 它們是在爲它們分配值時自動創建的。例如,添加一個「半徑」屬性,只是這樣做,一旦你已經創建了「球」的對象:
ball.radius = 20
一旦你做到了這一點,假設你已經把它貼在碰撞事件處理程序球本身,球被稱爲「自我」參數傳遞,你可以用self.radius得到半徑:
local radius = self.radius
如果你已經附加了事件處理一些其他的對象,球會被傳遞作爲「事件」參數的「其他」屬性。因此,使用您的例子好了,如果你附加的事件處理程序的好,那麼你會得到球的半徑:
local radius = event.other.radius
當然,如果你有其他(非球)對象,可以也擊中井,而這些物體沒有「半徑」屬性,那麼你必須確保「event.other」實際上是一個「球」物體。如果你不這樣做,那麼當你嘗試獲得半徑時你會得到「零」。事實上,你可以使用這種行爲來檢測到其他對象實際上是一個球:
local radius = event.other.radius
if radius then
-- may be safe to assume event.other is a ball
else
-- something else hit the well
end
希望這有助於。我只有一個月進入電暈我自己,所以...