Corona Touch Listener

我正在学习corona sdk 以下是代码 当两个对象重叠时,它们变成一个对象(一起移动),我不知道发生了什么...

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------

-- Your code here
local physics = require( "physics" )
physics.start()

local crate1 = display.newImage( "crate.png", display.contentCenterX, 100 )
crate1.name = "crate1"
local crate2 = display.newImage( "crate.png", display.contentCenterX + 100, 100 )
crate2.name = "crate2"
crate1:scale(0.2, 0.2)
crate2:scale(0.2, 0.2)

local bodyTouched = function(event)

            if(crate1.name == event.target.name and event.phase == "moved")
                then
                    print("Moved " , event.target.name )
                    crate1.x = event.x
                    crate1.y = event.y
            elseif (crate2.name == event.target.name and event.phase == "moved")
                then
                    print( "Moved ", event.target.name )
                    crate2.x = event.x
                    crate2.y = event.y
            end

end

physics.addBody( crate1, "static")
physics.addBody( crate2, "static")

crate1:addEventListener( "touch", bodyTouched )
crate2:addEventListener( "touch", bodyTouched )
点赞
用户2858170
用户2858170

请参考 Corona SDK 文档。 https://docs.coronalabs.com/daily/guide/events/detectEvents/index.html#TOC

章节:理解 Hit 事件

通常情况下,您应该阅读您使用的所有内容的文档。 您的触摸事件将在与事件坐标相交的所有显示对象上传播。事件将触发其路线上注册的所有事件侦听器。

为避免多个侦听器被触发,您的事件侦听器 bodyTouch 必须返回 true,这将告诉 Corona 您已处理该事件,不应再调用其他侦听器。

2016-06-25 17:13:26