0

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

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

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

4

1 回答 1

2

您在这里有两个可行的选择;

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

或者

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

于 2012-07-09T11:10:42.863 回答