如何制作一次性动画?

时间:2017-08-04 04:34:49

标签: java animation libgdx

我只是想知道,如何制作一次动画。我有很多动画,但不幸的是,它们在循环中重复,而这不是我想要的。这是一些代码片段:

public void act(float delta) {
    super.act(delta);
    stateTime += Gdx.graphics.getDeltaTime();
    TextureRegion currentFrame = activeAnimation.getKeyFrame(stateTime, true);
    setDrawable(new TextureRegionDrawable(currentFrame));
}

RUNNING_ANIMATION_BY_SIDE = new Animation<TextureRegion>(0.333f,framesRunningBySide,Animation.PlayMode.LOOP);
SHOOTING_ANIMATION = new Animation<TextureRegion>(0.333f, framesShootingFront, Animation.PlayMode.NORMAL);
STEADY_ANIMATION = new Animation<TextureRegion>(0.230f, framesStandingFront, Animation.PlayMode.LOOP_RANDOM);
DYING_ANIMATION = new Animation<TextureRegion>(0.230f, framesDyingFront,Animation.PlayMode.NORMAL);

setActiveAnimation(STEADY_ANIMATION);

如何让我的演员只播放一次动画?如您所见,我已将 DYING_ANIMATION 设置为 PlayMode.NORMAL

1 个答案:

答案 0 :(得分:0)

您正在使用getKeyFrame(float stateTime, boolean looping)类的重载方法Animation

如果您将循环true作为第二个参数传递,则动画播放模式将从PlayMode.NORMAL转换为PlayMode.LOOP

因此使用getKeyFrame(float stateTime)或传递false作为第二个参数,但STEADY_ANIMATION播放模式将从PlayMode.LOOP_RANDOM转换为PlayMode.LOOP