У меня есть анимация взрыва, мне нужно в цикле один раз, а затем исчезнуть, но не работает, Эта часть его должна сделать трюк: birdAnimationHit.setPlayMode(Animation.NORMAL);
Loop анимация раз в LibGDX
Но это только показывает последнее изображение петля. Не знаю, что это неправильно, вот мой код
AssetLoader.java
public static void load() {
texture = new Texture(Gdx.files.internal("data/texture.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
dustHit1 = new TextureRegion(texture, 930, 154, 140, 158);
dustHit1.flip(false, true);
dustHit2 = new TextureRegion(texture, 1079, 154, 187, 158);
dustHit2.flip(false, true);
dustHit3 = new TextureRegion(texture, 1274, 154, 149, 158);
dustHit3.flip(false, true);
dustHit4 = new TextureRegion(texture, 1430, 154, 153, 158);
dustHit4.flip(false, true);
dustHit5 = new TextureRegion(texture, 1590, 154, 155, 158);
dustHit5.flip(false, true);
TextureRegion[] birdsHit = { dustHit1, dustHit2, dustHit3, dustHit4, dustHit5 };
birdAnimationHit = new Animation(0.06f, birdsHit);
birdAnimationHit.setPlayMode(Animation.NORMAL);
}
GameRenderer.java
private void drawBirdHit(float runTime) {
batcher.draw(birdAnimationHit.getKeyFrame(runTime), bird.getX(),
bird.getY(), bird.getWidth()/2.0f,
bird.getHeight()/2.0f, bird.getWidth(), bird.getHeight(),
1.4f, 1.4f, bird.getRotation());
}
Я добавил переменную суммы в свой код, но не знаю, что делать, когда вы говорите «где-нибудь где-то таймер, где вы суммируете дельты» – RonEskinder
Если вы добавили переменную суммы в качестве члена, она должна работать, и вы будете готовы с ошибкой. Просто держите переменную члена float внутри своего класса, где вы используете анимацию (сумму), где вы суммируете runTime. Это переменная, которую нужно передать методу getKeyFrame. – BennX