Понедельник, 11 Ноября 2024, 05:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
LibGDX.Правильная смена Screen.
NecrolichДата: Воскресенье, 08 Ноября 2015, 20:14 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Как правильно менять Screen ы?Делая на основе этого http://www.libgdx.ru/2013/09/extending-simple-game.html делаю игру, но там написано
Код
this.setScreen(new MainMenuScreen(this));

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

public class ScreenMangaer {
    public static ScreenGame ScrGame;
    public static ScreenMainMenu ScrMain;
    public static ScreenGameOver ScrGameOver;
    public static ScreenPauseMenu ScrPauseMenu;

    public static void init(Main main){
        ScrMain = new ScreenMainMenu(main);
        ScrGame = new ScreenGame(main);
        ScrGameOver = new ScreenGameOver(main);
        ScrPauseMenu = new ScreenPauseMenu(main);
    }
}

Код

public class Main extends Game{
       @Override
    public void create () {
    this.setScreen(new ScreenMainMenu(this));
    }
}

Но тут возникает проблема, при такой реализации все скрины активны и слушатель событий находится у самого последнего.Собственно как правильно реализовать переход между скринами?
AlexSteinДата: Воскресенье, 08 Ноября 2015, 22:40 | Сообщение # 2
частый гость
Сейчас нет на сайте
Ну а зачем тебе создавать сразу все скрины? Я использую создание скрина тогда, когда нужно на него переходить.

Код

//... код в файле класса наследника Game
this.setScreen(new MainMenuScreen(this));
//...

//... код в файле класса MainMenu
game.setScreen(new GameScreen(game));
//...


Сообщение отредактировал AlexStein - Воскресенье, 08 Ноября 2015, 22:44
NecrolichДата: Понедельник, 09 Ноября 2015, 16:29 | Сообщение # 3
почетный гость
Сейчас нет на сайте
AlexStein, Я тоже так делаю, но не уверен что это правильно. И просто когда я перемещаюсь в скрименю и возвращаюсь назад некоторые данные теряются, в теории я уже придумал как это решить, но все же мне лень лопатить уже написанный код)

Сообщение отредактировал Necrolich - Понедельник, 09 Ноября 2015, 17:49
AlexSteinДата: Понедельник, 09 Ноября 2015, 22:58 | Сообщение # 4
частый гость
Сейчас нет на сайте
Цитата Necrolich ()
AlexStein, Я тоже так делаю, но не уверен что это правильно. И просто когда я перемещаюсь в скрименю и возвращаюсь назад некоторые данные теряются, в теории я уже придумал как это решить, но все же мне лень лопатить уже написанный код)


Каждый решает сам как делать, однако можно данные сохранять в отдельном файле и при переходе со сцены перезаписывать данные.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг