2017-08-04 71 views
2

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

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 a PlayMode.NORMAL

回答

0

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

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

所以使用getKeyFrame(float stateTime)或通过false作为第二个参数但STEADY_ANIMATION播放模式将转换从PlayMode.LOOP_RANDOMPlayMode.LOOP