AndEngine - возникли проблемы с подключением нового объекта Sprite

StackOverflow https://stackoverflow.com/questions/8352165

Вопрос

Я уже несколько часов занимаюсь методом проб и ошибок и еще не нашел решения для чего-то, что кажется простым ... Я использую

родовое слово

, чтобы определить, изменил ли пользователь ориентацию экрана. В конце концов, он отправляется в этот метод, где объекты прикрепляются к сцене:

родовое слово

Этот метод вызывается при первом создании обоев, а также при изменении ориентации экрана пользователем.

Я протестировал это на своем телефоне, и он успешно отображает сообщения журнала, когда я переключаю ориентацию, что означает, что он делает то, что я хочу.

Проблема -

Дочерний спрайт не отключается при вызове этого метода.Если я нахожусь в портретном режиме и переключаюсь на альбомный, портретный спрайт остается, и я хочу, чтобы он исчез, и наоборот.

Я был бы очень рад, если бы кто-нибудь мог ответить на этот вопрос. У меня уже 20 часов болит голова.

Это было полезно?

Решение

Похоже, проблема может заключаться в логике: вы переназначаете SpriteDayPortrait и SpriteDayLanscape перед вызовом ветки с просьбой отсоединить или прикрепить их.

Таким образом, каждый раз, когда вызывается сценарий отсоединения, он ссылается на новый экземпляр спрайта, а не на старый экземпляр, который вы хотите отсоединить.

попробуйте переместить назначение спрайтов в другую функцию, которая вызывается только при создании сцены:

родовое слово

Другие советы

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

В любом случае, onConfigurationChanged вызывается из потока пользовательского интерфейса, и вам не следует манипулировать объектами AndEngine, а только в UpdateThread.Это может вызвать некоторые проблемы (однако, если это произойдет, ваша игра вылетит), поэтому измените его.

Я думаю, это произошло из-за того, что вы не очистили свой код генерирующего кода перед установкой нового фона (возможно, старый фон скрывает новый?) Сохраните ссылку на свой последний кодовый кодовый код, затем удалите его из фона перед добавлением нового.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top