不停的运动

我在处理玩家移动的问题上遇到了一些麻烦。问题在于,移动由四个方向键控制,当按下其中一个键时,角色向那个方向移动。然而,如果玩家在移开手指之前不松开按钮,玩家会无限移动。 代码如下:

function moveright(self,event)
    self.x=self.x+2
end

function rightkeypressed(event)
    if event.phase == "began" then
        knight.enterFrame = moveright
        Runtime:addEventListener("enterFrame",knight)
    end

    if event.phase == "ended" or event.phase == "cancelled" then
        Runtime:removeEventListener("enterFrame",knight)
    end
end

rightkey:addEventListener("touch",rightkeypressed)

对于四个方向键,情况都是一样的。

点赞
用户5090995
用户5090995

当你理解触摸监听器后就非常简单了。

如果事件.phase == "ended" 或事件.phase == "cancelled",那么
    knight.enterFrame = moveright

    Runtime:addEventListener("enterFrame",knight)
    Runtime:removeEventListener("enterFrame",knight)
end

如果有任何问题或上述代码无效,请随时询问。

2015-07-08 02:30:09