让一个对象返回到起点在corona中

我有一个功能,当有人按住按钮时会运行该功能(一个物体移动)。但是我还有这两个物体之间的碰撞,当第一个物体撞到第二个物体时,它会被送回到起点。但是问题是,当我继续按住按钮移动物体时,它不会在碰撞时被送回起点。它只会出现问题。

这是我用于按住按钮功能的代码:

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 )
点赞
用户2549544
用户2549544

尝试在以下 onCollision(event) 函数的结尾插入 return true

function onCollision( event )
   if ( event.phase == "began" ) then
     transition.cancel( )
     transition.moveTo( cube, {time = 0, x = 35, y = 100} )
   end
   return true
end
2013-12-16 01:32:12
用户1218135
用户1218135

将对象设为子弹。

Corona 中有一个属性,当设置为 isBullet=true 时,物理对象就被设为子弹,这样它每秒就会检查几次碰撞。如果不设置为子弹,那么就不会触发相关事件。

2013-12-16 07:47:12