【发布时间】:2011-05-30 10:06:38
【问题描述】:
我想添加按钮,直到我停止按下它们,它才会继续发挥其功能。
例如,在马里奥游戏中,一旦我们开始按下前进按钮,它将继续移动马里奥,直到我们离开该按钮,我们不必一次又一次地按下来移动。
【问题讨论】:
-
我想你忘记写问题了。
-
仅供参考,在 Corona SDK 站点的 Corona 代码交换部分,有一些与输入相关的示例,包括创建屏幕模拟操纵杆的示例。
我想添加按钮,直到我停止按下它们,它才会继续发挥其功能。
例如,在马里奥游戏中,一旦我们开始按下前进按钮,它将继续移动马里奥,直到我们离开该按钮,我们不必一次又一次地按下来移动。
【问题讨论】:
由于 enterFrame 侦听器,上述内容将始终运行,您正在寻找的内容将更像这样......
local function moveLeft(event)
if event.phase=="began" then
character.x=character.x+1
elseif event.phase="ended" then
--do Nothing it wont move anymore anyways
end
end
local leftbutton=display.newImage("bla bla bla.png")
leftButton:addEventListener("touch",moveLeft)
当您使用触摸事件时,无论您告诉它做什么,它都不会停止,直到您释放,它与点击不同,因为在点击时您必须以相当快的速度释放,并且事件仅在您释放时注册。
【讨论】:
我假设您的问题是“我如何制作一个在释放之前持续作用的按钮?”首先为“触摸”事件添加一个监听器。
触摸事件有几个阶段,用于触摸的开始和结束。所以在监听函数中使用 if/else 来响应不同的阶段。
if event.phase=="began" then
Runtime.addEventListener("enterFrame", doSomething)
elseif event.phase=="ended" then
Runtime.removeEventListener("enterFrame", doSomething)
现在在 doSomething 函数中移动马里奥。
【讨论】: