0

我正在开发一个游戏,其中我有一个角色,我想在触摸屏幕时在 x 轴上移动。我已经做到了,但是我希望对象在触摸屏幕时继续移动,而不仅仅是移动一次。我怎样才能做到这一点?

4

2 回答 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 回答