Corona SDK:如何使对象移动

时间:2012-12-15 17:51:53

标签: sdk lua corona

我正在开发一款游戏,当我触摸屏幕时,我想要在x轴上移动一个角色。我已经成功了,但是我想让对象在触摸屏幕时继续移动,而不是只移动一次。我怎么能这样做?

2 个答案:

答案 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)

或创建一个覆盖整个屏幕的隐形按钮。