local held = false
local function jumperTap ()
jumper:applyForce( 0, 200, jumper.x, jumper.y )
return false
end
Runtime:addEventListener( "tap", jumperTap )
local function holdListener(event)
held = true
jumper:applyForce( 0, 250, jumper.x, jumper.y )
return true
end
local function jumperTouch(event)
if (event.phase == "began") then
display.getCurrentStage():setFocus(jumper)
holdTimer = timer.performWithDelay( 500, holdListener )
elseif (event.phase == "moved") then
timer.cancel(holdTimer)
elseif (event.phase == "ended" or event.phase == "cancelled") then
display.getCurrentStage():setFocus(nil)
timer.cancel(holdTimer)
held = false
end
end
Runtime:addEventListener( "touch", jumperTouch )
我正试图点击并触摸并按住。当触摸和保持发生时,跳线将施加更多的力,因此当触摸并保持屏幕时他可以跳得更高。点击屏幕后,他的跳跃时间会缩短。
当我点击时,预期的事情发生了。当我点击并按住时,预期的事情发生了。由于我在Corona的新手,我确实有一些明显的问题。他们是......
- 当我点击并按住时,一切顺利,但是当我发布时,它会出现故障并且执行的操作似乎是点击事件。不确定为什么会发生这种情况
- 当我执行点击事件时,我可以在对象空中时再次执行它 - 这会将他带到地面并且点击事件似乎再次表演,但力度较小。
非常感谢任何和所有帮助!
编辑:我把return返回true并返回false只是为了尝试不同的东西,但它并没有影响任何东西。
答案 0 :(得分:0)
我建议测试去抖动,以防止点击/点击+保持事件加倍。通过将函数传递给全局布尔值,您可以使它们只能在没有敲击事件发生时点击。因为根据您的活动,无论他们目前是否正在跳跃,他们似乎都会发生这种情况。模式与否。
示例:强>
debounce = false
function func1()
if debounce == false then
debounce = true
//event script
end
end
function event_ended()
debounce = false
end