【问题标题】:limiting a touch event in Corona SDK在 Corona SDK 中限制触摸事件
【发布时间】:2017-01-06 23:32:42
【问题描述】:

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

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

任何帮助将不胜感激! 提前致谢。

【问题讨论】:

    标签: lua sprite coronasdk


    【解决方案1】:

    这里有两个可行的选择;

    1) 如果跳跃总是花费相同的时间,您可以使用计时器来防止用户再次跳跃,直到您知道他们将着陆。 (计时器可以更改变量,甚至删除并重新添加事件侦听器,都可以。)

    或者

    2) 与您在上面所做的类似 - 在播放器上添加一个碰撞侦听器,以便在它撞到地面时设置一个标志,例如,将 player.canJump 设置为 true 并立即将其设置为 false你开始跳跃动画。当角色再次撞击地面时,将其设置回 true 并再次播放运行动画。

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 2012-12-18
      相关资源
      最近更新 更多