使一个物体返回到日冕的起始点

时间:2013-12-15 19:03:19

标签: events lua corona collision

所以我有一个函数,如果有人拿着一个按钮(一个物体移动)就会运行。但是我在该对象和另一个静态对象之间也发生了这种碰撞,当第一个对象碰到第二个对象时,它会被发送回起点。但问题是当我一直按住按钮移动物体时。碰撞时它不会将其发回。它只是搞砸了。

这是保留按钮功能的代码:

local holding = false
function enterFrameListener()
if holding then
 transition.to( cube, {time = 0, x= cube.x - 5} )
end
end

function touchHandler( event )
if event.phase == "began" then
    display.getCurrentStage():setFocus( event.target )
    event.target.isFocus = true
    Runtime:addEventListener( "enterFrame", enterFrameListener )
    holding = true
elseif event.target.isFocus then
    if event.phase == "moved" then
    elseif event.phase == "ended" then
        holding = false
        Runtime:removeEventListener( "enterFrame", enterFrameListener )
        display.getCurrentStage():setFocus( nil )
        event.target.isFocus = false
    end
end
return true
end
leftbutton:addEventListener( "touch", touchHandler )

这是我碰撞的代码:

function onCollision( event )

if ( event.phase == "began" ) then
  transition.cancel( )
  transition.moveTo( cube, {time = 0, x = 35, y = 100} )
end
end
redblock:addEventListener( "collision", onCollision )

2 个答案:

答案 0 :(得分:0)

尝试在return true功能的末尾插入onCollision(event),如下所示:

function onCollision( event )
   if ( event.phase == "began" ) then
     transition.cancel( )
     transition.moveTo( cube, {time = 0, x = 35, y = 100} )
   end
   return true
end

答案 1 :(得分:0)

将对象设为子弹。 日冕有一处房产。 isBullet =真 将你的物理对象作为子弹,所以它会在一秒钟内多次检查碰撞。 然后这个事件可以抛出,否则它不会引发那个事件。