当有人按住按钮时,如何进行碰撞

时间:2013-12-17 14:07:47

标签: lua corona game-physics

所以我有这个立方体,如果玩家点击按钮移动。我也有这个块,如果立方体碰撞,立方体将被发送回起始位置。我已经尽了最大努力,但我似乎无法让他们两个一起正常工作。使用我的代码,立方体会出现故障,并在块和起始位置之间移动整个屏幕。这是按下按钮的情况。如果它在碰撞的同一时刻被释放它确实有效,但显然玩家不会注意到这一点。

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 = 35} )

end
return true
end
redblock:addEventListener( "collision", onCollision )

此外:每当立方体落在红色块的边缘并开始旋转并被送回开始。它一直在旋转,它开始自行移动。

我希望有人可以提供帮助! 感谢。

1 个答案:

答案 0 :(得分:0)

在碰撞过程中你仍然处于“移动”阶段,因此块会尝试重置,但之后会被拖动。一旦检测到碰撞,您需要从“左按钮”中删除事件处理程序,以便触摸事件不再进行。