我正在开发一款游戏,当我触摸屏幕时,我想要在x轴上移动一个角色。我已经成功了,但是我想让对象在触摸屏幕时继续移动,而不是只移动一次。我怎么能这样做?
答案 0 :(得分:2)
Corona SDK中的触摸事件仅在某些内容发生变化时发生,例如触摸开始,结束或检测到手指移动时。如果你想在按下按钮的同时继续操作,它将需要一个“enterFrame”事件。
local buttonPressed = false
local function moveCharacter(event)
if buttonPressed then
character.x = characterx + 1
end
end
local function buttonPressed(event)
if event.phase == "began" then
buttonPressed = true
elseif event.phase == "ended" then
buttonPressed = false
end
return true
end
local myButton = display.newRect(0,0,64,48)
myButton:addEventListenr("touch", buttonPressed)
Runtime:addEventListener("enterFrame", moveCharacter)
在这种情况下,当按下按钮的状态时,enterFrame侦听器将移动该字符。现在你可能不希望每秒将一个像素移动一个像素30次,因此你需要弄清楚要移动它的分数像素数。你的buttonPressed然后只是打开一个标志,使移动功能工作。
答案 1 :(得分:1)
您可以在Runtime对象上使用触控侦听器:
Runtime:addEventListener("touch", buttonPressed)
或创建一个覆盖整个屏幕的隐形按钮。