1

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

这是代码:

    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:

在此处输入图像描述

4

1 回答 1

1

我认为你想要实现的是通过一次触摸跳跃并让它完成。我会使用某种状态来做到这一点。目前,您的语句中的代码仅在触摸时运行。

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

于 2017-05-22T10:47:37.450 回答