如何在Corona SDK中检测触地事件?

如何在Corona SDK中检测触地事件?,sdk,lua,touch,coronasdk,Sdk,Lua,Touch,Coronasdk,我有一个操纵杆图形放在角落里的屏幕在我的电晕游戏 当用户触摸操纵杆并将其从一侧拖动到另一侧时,它会移动角色。但是,如果用户从操纵杆的中间一直拖动到一侧,然后移除手指,则角色将继续移动。我希望角色在润色时停止,即使润色不再出现在操纵杆图形上 操纵杆图像订阅带有控件的“touch”侦听器:addEventListener(“touch”,onTouch) 操纵杆代码如下: -- Constants local playerSpeed = 300 local playerDamping = 15 -

我有一个操纵杆图形放在角落里的屏幕在我的电晕游戏

当用户触摸操纵杆并将其从一侧拖动到另一侧时,它会移动角色。但是,如果用户从操纵杆的中间一直拖动到一侧,然后移除手指,则角色将继续移动。我希望角色在润色时停止,即使润色不再出现在操纵杆图形上

操纵杆图像订阅带有
控件的“touch”侦听器:addEventListener(“touch”,onTouch)

操纵杆代码如下:

-- Constants
local playerSpeed = 300
local playerDamping = 15

-- Player controls
local onTouch = function( event )

    -- Player rotation
    local deltaX = event.x - control.x
    local deltaY = event.y - control.y
    local magnitude = math.sqrt( deltaX * deltaX + deltaY * deltaY )

    player.rotation = math.deg( math.atan2 ( deltaY, deltaX ) )

    -- Player speed
    if event.phase == "ended" then
        player.linearDamping = playerDamping
    else
        player.linearDamping = 0
        player:setLinearVelocity( deltaX / magnitude * playerSpeed, deltaY / magnitude * playerSpeed )
    end
end
有什么想法吗?谢谢

添加:

if event.phase == "began" then
    display.getCurrentStage():setFocus( control, event.id )
end
onTouch
功能主体,订阅“touch end”(触摸结束)事件,即使用户的手指不在操纵杆上