【问题标题】:Can I make a single collision listener for multiple objects in Corona SDK?我可以在 Corona SDK 中为多个对象创建一个碰撞侦听器吗?
【发布时间】:2016-03-23 10:50:17
【问题描述】:

我正在制作一个会生成多个对象并将它们添加到数组中的游戏。我想做的是有一个监听器,当检测到碰撞时会触发。我知道如何使用单个对象来做到这一点,但是如何创建一个可以处理多个对象的侦听器呢?

【问题讨论】:

    标签: android coronasdk


    【解决方案1】:

    是的,你可以,通过创建一个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)
    

    文档指出:全局碰撞处理最适合用于多对多碰撞场景

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多