LibGDX: черные прямоугольники вместо анимационных текстур - PullRequest
1 голос
/ 04 июля 2019

Я использую AssetManager для управления активами в моей игре libgdx. У меня есть статические изображения и анимация. Когда я использовал эмулятор (Nexus 6, Api 29) для тестирования игры, все было хорошо, но как только я эмулировал игру на свой реальный телефон (Samsung J5 2016, Api 25), он начал показывать черные прямоугольники вместо некоторых анимаций, но статичные текстуры были в порядке.

Моя анимация 800x800 пикселей, 10 кадров в секунду.

Вот пример такой текстуры. Этот код находится на экране загрузки:

assetManager.load(AssetDescriptors.BONUS_TEXTURE);

Здесь я создаю экземпляр анимации, время кадра = 0.1f. Этот код находится в фабрике, которая создает объект с такой анимацией:

animationComponent.animation = new Animation<>(GameData.FRAME_TIME,
                assetManager.get(AssetDescriptors.BONUS_TEXTURE).getRegions());

И вот я это рисую. Это из класса, который управляет рендерингом:

batch.draw(animationComponent.animation.getKeyFrame(animationComponent.elapsedTime, true),
                position.x - dimension.width / 2f, position.y - dimension.height / 2f,
                dimension.width, dimension.height
        );

Это работает на эмуляторе и не работает на реальном устройстве. Пожалуйста, скажите мне, что может быть не так. Спасибо за вашу помощь.

эмулятор эмулятор

телефон - анимация игрока и банка телефон - анимация игрока и банка

1 Ответ

0 голосов
/ 05 июля 2019

Многие устройства не поддерживают текстуры с размерами, которые не являются степенью двойки.Вы должны упаковать свои текстуры с TexturePacker и оставить настройку pot включенной.

...