限制Corona SDK中的触摸事件

时间:2012-07-08 21:43:55

标签: lua sprite corona

这里有点绝望。我正试图在Corona SDK中制作一个亚军游戏,但是我无法从跳跃动画转换到跑步(跳回后)。

local function touched(event)     
if(event.phase == "began")then

char.accel = monster.accel + 20
char:prepare("jumping")
char:play()
else


char:prepare("running")
char:play()     

end     
end

在此代码中,如果玩家持续触摸屏幕,跳跃动画一直在地面重复,是否有办法及时限制触摸事件?

还试图通过另一种结构实现动画:

     if(onGround) then
           if(wasOnGround) then

           else
                monster:prepare("running")
                monster:play()
           end
      else
           monster:prepare("jumping")
           monster:play()
      end

但跳跃动画由于某种原因只显示第一帧。

任何帮助都会非常感激! 提前谢谢。

1 个答案:

答案 0 :(得分:2)

这里有两个可行的选择;

1)如果跳跃总是需要花费相同的时间,你可以使用计时器来防止用户再次跳跃,直到你知道它们会落地为止。 (计时器可以更改变量,甚至删除并重新添加事件监听器,这两种方法都可以。)

或者

2)类似于你上面所做的 - 在播放器上添加一个碰撞监听器,这样当它碰到地面时,一个标志,例如,player.canJump被设置为true,并且只要将它设置为false你开始跳跃动画。当角色再次击中地面时再将其设置为true并再次播放正在运行的动画。