Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Вклады
                tonegodGUI
                    Реализация нескольких экранов

Реализация нескольких экранов

Опубликованно: 30.04.2017, 1:56
Последняя редакция, Andry: 30.04.2017 9:48

И так, прежде чем я объясню, как это сделать, задайте себе вопрос:

Зачем мне нужно несколько экранов?! ??

Это JME! Для этого и предназначены AppStates.

Теперь … пример реализации нескольких экранов с помощью AppStates.

public class UserLogin extends AbstractAppState {
    Main app;
    Screen screen;

    LoginBox loginWindow;

    public UserLogin(Main app, Screen screen) {
        this.app = app;
        this.screen = screen;
    }

    @Override
    public void initialize(AppStateManager stateManager, Application app) {
        super.initialize(stateManager, app);

        initLoginWindow();
    }

    public void initLoginWindow() {
        loginWindow = new LoginBox(screen,
                "loginWindow",
                new Vector2f(screen.getWidth()/2-175,screen.getHeight()/2-125)) {
            @Override
            public void onButtonLoginPressed(MouseButtonEvent evt, boolean toggled) {
                // Некий вызов на сервер, чтобы зарегистрировать клиента в
                finalizeUserLogin();
            }
        };
        screen.addElement(loginWindow);
    }

    @Override
    public void cleanup() {
        super.cleanup();

        screen.removeElement(loginWindow);
    }

    public void finalizeUserLogin() {
        // Некий вызов в вашем приложении, чтобы выгружают это AppState и загружают следующий AppState
        app.someMethodToSwitchAppStates();
    }
}

И у вас есть screen без new Screen.

Если у вас есть фантазии о загрузке и выгрузке содержимого экрана, используйте EffectManager и вызовите ниже приведенный код когда работает effects от метода cleanup() в AppState .

effect.setDestroyOnHide(true);

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.