跳跃动画的问题

Problems with jumping animation

我制作了一个跳跃动画,但是当我停止触摸屏幕时,动画停止了。

代码如下:

    boolean touching = Gdx.input.isTouched();
    long elapsed = (System.currentTimeMillis() - startTime)%1000;

    if (touching){
        float jump = 500 * (float)Math.sin(((Math.PI*2)/1000)*(elapsed/2));
        sprite.setPosition(Gdx.graphics.getWidth()/2,jump);
    }

停止触摸屏幕后如何让动画结束?

这是代码的 gif 运行:

我觉得你想达到的效果是轻轻一按就跳完了。我会使用某种状态来做到这一点。目前,您语句中的代码仅在触摸时运行。

只要用户触摸屏幕,您就可以将 boolean jumping 设置为 true。然后检查 if (jumping),而不是检查 if (touching)。在这里放置跳跃的代码。当有人在跳跃时按下屏幕时,你不应该让它重置(除了像双跳这样的情况)。每当实体再次接触地面时,跳跃应该设置回 false.