我只是想知道,如何制作一次动画。我有很多动画,但不幸的是,它们在循环中重复,而这不是我想要的。这是一些代码片段:
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 。
答案 0 :(得分:0)
您正在使用getKeyFrame(float stateTime, boolean looping)
类的重载方法Animation
。
如果您将循环true
作为第二个参数传递,则动画播放模式将从PlayMode.NORMAL
转换为PlayMode.LOOP
因此使用getKeyFrame(float stateTime)
或传递false
作为第二个参数,但STEADY_ANIMATION
播放模式将从PlayMode.LOOP_RANDOM
转换为PlayMode.LOOP
。