2012-05-24 3 views
5

В andAngine Мне нужно уничтожить сцену в andangine и воссоздать ее, чтобы перезапустить игровые переменные и слушатели и gamelogic. я использую этот код:Как правильно уничтожить и воссоздать сцену в andengine?

scene.detachChildren(); 
scene.clearEntityModifiers(); 
scene.clearTouchAreas(); 
scene.clearUpdateHandlers(); 

System.gc(); 
thisengine.setScene(menuscene); 

, а затем я воссоздать сцену

scene = new Scene(); 
scene.dosomestuff 
thisengine.setScene(scene); 

Что-то, кажется, идет не так, когда я заново в третий раз на сцену. Спрайты не отображаются ... искажены или что-то не отображается вообще. Может ли кто-нибудь объяснить мне, правильно ли я инициализирую и уничтожаю сцену?

+0

Hi Claudio. Я разрабатываю игру в AndEngine, и я также борюсь с точно такой же проблемой. Вы нашли решение этой проблемы? Если да, можете ли вы мне помочь? –

+0

Привет @YogeshSomani Я тоже борюсь с одной и той же проблемой ... Напишите, если и найдешь ... –

+0

@shihab_returns: Я сообщу вам, найду ли я решение для этого. Я ожидаю от вас то же самое. :) –

ответ

4

Лично я создавал бы сцену при первом использовании.

Чтобы изменить сцену, сделайте удаление, как вы показали, я бы не стал беспокоиться о вызове System.gc(), а затем вместо создания новой сцены() - просто вызвать scene.reset(), scene.dosomestuff и т. д.

Создание новой сцены, как вы показываете, выглядит как серьезная утечка памяти или, по крайней мере, возможная утечка.

Смежные вопросы