0
我正在製作一個遊戲,它會產生多個對象並將它們添加到數組中。我想要做的是有一個偵聽器,當檢測到碰撞時會觸發。我知道如何用單個對象來做到這一點,但我如何創建一個可以與多個對象一起工作的偵聽器?我可以爲Corona SDK中的多個對象創建單個碰撞偵聽器嗎?
我正在製作一個遊戲,它會產生多個對象並將它們添加到數組中。我想要做的是有一個偵聽器,當檢測到碰撞時會觸發。我知道如何用單個對象來做到這一點,但我如何創建一個可以與多個對象一起工作的偵聽器?我可以爲Corona SDK中的多個對象創建單個碰撞偵聽器嗎?
是的,你可以通過創建一個Global Collision Handling爲了讓你知道這相撞的對象,你可以對對象的實例添加標籤你有三個對象:
local myObject = {}
--ASSUMING YOU HAVE INITIALIZE THE OBJECTS ALREADY
--SET THE TAG
myObject[0].myName = "object0"
--DO THE SAME WITH THE OTHER OBJECTS
myObject[1].myName = "object1"
myObject[2].myName = "object2"
--Create your collision function
local function onCollided(event)
if(event.phase == "began") then
--BEGAN COLLISION
--THE BELOW PRINT STATEMENT WILL PRINT WHICH OF THE THREE OBJECTS COLLIDED WITH
print("Collision Between ".. event.object1.myName .. " and " .. event.object2.myName)
elseif(event.phase == "ended") then
--END COLLISION
end
end
--AND OFCOURSE ADD THE LISTENER
Runtime:addEventListener("collision", onCollided)
因爲Docs指出:全局衝突處理最適用於多對多碰撞場景