Ich mache ein Spiel, das mehrere Objekte spawnen und sie zu einem Array hinzufügen wird. Ich möchte einen einzelnen Listener haben, der ausgelöst wird, wenn eine Kollision erkannt wird. Ich weiß, wie man das mit einem einzelnen Objekt macht, aber wie kann ich einen Listener erstellen, der mit mehreren Objekten arbeitet?Kann ich einen einzelnen Kollisionslistener für mehrere Objekte in Corona SDK erstellen?
0
A
Antwort
0
Ja, Sie können eine Global Collision Handling Damit Sie wissen kollidierte, welches der Objekte Durch das Erstellen Sie eine Tag auf diesem Objekt Beispiel hinzufügen, können Sie drei Objekte haben:
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)
wie die Docs besagt, dass: Global Collision Handling am besten in einem Viele-zu-viele-Kollisionsszenario verwendet wird