LibGDX Sprites не будет отображаться

Я учусь использовать спрайт, но столкнулся с проблемой. Спрайты работают хорошо, когда, скажем, на экране есть одна сущность ("Игрок"), но как только на экране появляется несколько сущностей (стреляющие существа Игрока, создающие несколько пули с одинаковым другим спрайтом), игрок исчезает. Фактически, когда я добавил еще один спрайт ("Коробка"), эта сущность тоже исчезла, когда игрок начал стрелять.

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

У каждой сущности есть класс SpriteManager с ArrayList of Sprites (а не LibGDX). Вы оживляете спрайт, вызывая getCurrentSprite (), а затем визуализируете его. При инициализации каждой сущности вы добавляете классы Sprite в класс EntityManager, чтобы вы могли переключаться между ними, если вы двигаетесь или стоите на месте. Ранее я выбирал, какие спрайты использует сущность из статического объекта, определенного в другом месте, но я думал, что ссылка на один и тот же объект вызовет проблемы, если, скажем, несколько маркеров на экране используют один и тот же объект, поэтому я должен был создать совершенно новый объект каждый время. Как только это произошло, сами пули начали исчезать через 5 секунд после выстрела.

Изменить: стрельба одной пули не заставит игрока исчезнуть, но стрельба две пули одновременно. Как только одна пуля покидает экран и удаляется из ArrayList (он больше не "существует"), игрок снова появляется. По сути, только одна пуля может сосуществовать с игроком. Возможно ли, что любая секунда или более пуль могут "перекрывать" игрока каким-то странным способом? Я проверил; игрок остается в ArrayList, и функция рендеринга его спрайтов тоже работает.

0 ответов

Другие вопросы по тегам