【发布时间】:2016-03-23 10:50:17
【问题描述】:
我正在制作一个会生成多个对象并将它们添加到数组中的游戏。我想做的是有一个监听器,当检测到碰撞时会触发。我知道如何使用单个对象来做到这一点,但是如何创建一个可以处理多个对象的侦听器呢?
【问题讨论】:
我正在制作一个会生成多个对象并将它们添加到数组中的游戏。我想做的是有一个监听器,当检测到碰撞时会触发。我知道如何使用单个对象来做到这一点,但是如何创建一个可以处理多个对象的侦听器呢?
【问题讨论】:
是的,你可以,通过创建一个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)
文档指出:全局碰撞处理最适合用于多对多碰撞场景
【讨论】: