如何在一次击键中获得完整的动画循环?
How do I get a complete animation loop in one keystroke?
我需要解决什么问题才能使一次击键播放一个完整的动画循环?
正在创建动画对象:
jojoStandSummonTextureAtlasRight = new TextureAtlas(Gdx.files.internal("jojo/stand_summon/right/jojo_stand_summon.atlas"));
jojoStandSummonAnimationRight = new Animation<TextureRegion>(1 / 3f, jojoStandSummonTextureAtlasRight.getRegions());
渲染动画:
if(Gdx.input.isKeyJustPressed(E) && lastKeyInput == RIGHT){
sb.draw(jojo.jojoStandSummonAnimationRight.getKeyFrame(elapsedTime, false), jojo.getPosition().x, jojo.getPosition().y);
lastKeyInput = RIGHT;
}
LibGDX提供的动画class包含一个.isAnimationFinished()函数。这将 return 一个指示动画何时播放完毕的布尔值。
就您而言,我假设您正在更新 update() 函数中的 elapsedTime 变量。所以你可以这样做:
if(!jojoStandSummonAnimationRight.isAnimationFinished()) {
elapsed_time += Gdx.graphics.getDeltaTime();
} else {
// animation is finished
}
我需要解决什么问题才能使一次击键播放一个完整的动画循环?
正在创建动画对象:
jojoStandSummonTextureAtlasRight = new TextureAtlas(Gdx.files.internal("jojo/stand_summon/right/jojo_stand_summon.atlas"));
jojoStandSummonAnimationRight = new Animation<TextureRegion>(1 / 3f, jojoStandSummonTextureAtlasRight.getRegions());
渲染动画:
if(Gdx.input.isKeyJustPressed(E) && lastKeyInput == RIGHT){
sb.draw(jojo.jojoStandSummonAnimationRight.getKeyFrame(elapsedTime, false), jojo.getPosition().x, jojo.getPosition().y);
lastKeyInput = RIGHT;
}
LibGDX提供的动画class包含一个.isAnimationFinished()函数。这将 return 一个指示动画何时播放完毕的布尔值。
就您而言,我假设您正在更新 update() 函数中的 elapsedTime 变量。所以你可以这样做:
if(!jojoStandSummonAnimationRight.isAnimationFinished()) {
elapsed_time += Gdx.graphics.getDeltaTime();
} else {
// animation is finished
}