所以我有一个函数,如果有人拿着一个按钮(一个物体移动)就会运行。但是我在该对象和另一个静态对象之间也发生了这种碰撞,当第一个对象碰到第二个对象时,它会被发送回起点。但问题是当我一直按住按钮移动物体时。碰撞时它不会将其发回。它只是搞砸了。
这是保留按钮功能的代码:
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 )
答案 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 =真 将你的物理对象作为子弹,所以它会在一秒钟内多次检查碰撞。 然后这个事件可以抛出,否则它不会引发那个事件。