我正在开发一个游戏,其中我有一个角色,我想在触摸屏幕时在 x 轴上移动。我已经做到了,但是我希望对象在触摸屏幕时继续移动,而不仅仅是移动一次。我怎样才能做到这一点?
问问题
3860 次
2 回答
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 将成为打开标志以使移动功能起作用的一种方式。
于 2012-12-15T18:50:09.730 回答
1
您可以在 Runtime 对象上使用触摸侦听器:
Runtime:addEventListener("touch", buttonPressed)
或者创建一个覆盖整个屏幕的隐形按钮。
于 2012-12-15T19:36:20.523 回答