По сути, я попытался реализовать анимацию на одном из экранов моей игры, используя TextureAtlas и используя .findRegions () для использования в качестве объекта анимации.
Я попытался переименовать файлы в соответствующие индексы (а также обновить папку .pack)
Sample Pack Folder:
sunglasses_1.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
tile000
rotate: false
xy: 1, 1
size: 600, 600
orig: 600, 600
offset: 0, 0
index: -1
...and so on until sunglasses_35.png
Я также читал об этой проблеме в SAO здесь: Анимация массива спрайтов, созданного из текстурного атласа - однако это не помогло. Я также прочитал страницу GitHub, включая информацию об анимациях и текстурных областях.
Вот строки кода, которые были использованы для реализации анимации
Настройка анимации
//animation setup with batch
batch = new SpriteBatch();
animationAtlas = new TextureAtlas(Gdx.files.internal("sunglasses.pack"));
animation = new Animation<>(0.13f, animationAtlas.findRegions("sunglasses"), Animation.PlayMode.LOOP);
Анимация, вызываемая в функции render () из класса Screen
@Override
public void render(float delta) {
float elapsedTime = 0f;
elapsedTime += Gdx.graphics.getDeltaTime();
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
batch.begin();
batch.draw(animation.getKeyFrame(elapsedTime), 100, 100);
batch.end();
}
Error
Exception in thread "LWJGL Application" java.lang.ArithmeticException: / by zero
at com.badlogic.gdx.graphics.g2d.Animation.getKeyFrameIndex(Animation.java:138)
at com.badlogic.gdx.graphics.g2d.Animation.getKeyFrame(Animation.java:122)
at com.tantei.game.Screens.MainMenu.render(MainMenu.java:104)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.tantei.game.Game.render(Game.java:21)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:225)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)
Любая помощь приветствуется !!
[EDIT] animation.getKeyFrames()
возвращает размер 0 - отсюда исключение. Я до сих пор не понимаю, почему у него нет элементов