Я пытаюсь создать бесконечно циклическую анимацию в libgdx. Проблема заключается в том, когда я запускаю его, анимация запускает первый цикл, но затем вылетает из-за исключения NullPointerException.LibGDX - Создание бесконечно цикличной анимации
Я поставил анимацию PLAYMODE в цикле, устанавливая логическое зацикливание истина при вызове getKeyFrame():
currentFrame = globeAnimation.getKeyFrame(time, true);
Когда я запускаю это, он будет работать на ключевых кадрах 1-40 (число кадры в моей анимации, но тогда сбой с этой ошибкой второго он достигает ключевой кадр 41 с этим сообщением об ошибке:
java.lang.NullPointerException
Я также попытался установить PLAYMODE к петле, установив его в конструкторе:
globeAnimation = new Animation(GLOBE_ANIMATION_FRAME_RATE, globeAnimationTextureRegions, PlayMode.LOOP);
По какой-то причине, когда я это делаю, это дает мне ошибку о том, что он
cannot resovle constructor for
Animation(float,TextureRegion[],PlayMode) constructor Animation.Animation(float,Array<? extends TextureRegion>,PlayMode)
Это не имеет смысла для меня, потому что основа имеет конструктор, который принимает эти точные параметры.
public Animation (float frameDuration, Array<? extends TextureRegion> keyFrames, PlayMode playMode) {
this.frameDuration = frameDuration;
this.animationDuration = keyFrames.size * frameDuration;
this.keyFrames = new TextureRegion[keyFrames.size];
for (int i = 0, n = keyFrames.size; i < n; i++) {
this.keyFrames[i] = keyFrames.get(i);
}
this.playMode = playMode;
}
Может кто-нибудь объяснить, почему этот конструктор не работает или альтернативный путь к этой работе.
Edit:
Фил Андерсон выяснил, почему конструктор не решал: мне пришлось заменить globeAnimationTextureRegions с
new Array<TextureRegion>(globeAnimationTextureRegions).
для конструктора, чтобы решить.
Убедитесь, что вы импортировали правильный тип анимации (проверить имя пакета). – Tenfour04
@ Tenfour04 Я импортировал com.badlogic.gdx.graphics.g2d.Animation – Bhaskar