在Corona SDK中限制触摸事件。

我有点绝望。我正在尝试在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

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

非常感谢任何帮助! 提前致谢。

点赞
用户1508495
用户1508495

你有两个可行的选择;

1)如果跳跃总是需要相同的时间,你可以使用计时器来防止用户再次跳跃,直到你知道他们已经落地。(计时器可以改变变量甚至删除并重新添加事件侦听器,任何一种都可以。)

2)类似于你上面所做的——在玩家上添加碰撞侦听器,这样当它触地时,可以将一个标志,例如,player.canJump 设置为 true,并在你开始跳跃动画时将其设置为 false。当角色再次触地时将其设置回 true 并再次播放奔跑动画。

2012-07-09 11:10:42