Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Документация для продвинутых пользователей
                Интеграция Nifty GUI: Наложение

Интеграция Nifty GUI: Наложение

Опубликованно: 20.08.2017, 19:27
Последняя редакция, Andry: 21.08.2017 16:23
  1. Концепция Nifty GUI
  2. Nifty GUI Рекомендации
  3. Nifty GUI XML Компоновка или Nifty GUI Java Компоновка
  4. Nifty GUI Накладывается или Nifty GUI Проецируется
  5. Nifty GUI Java Взаимодействие

nifty-gui-example

Обычно вы задаёте клавиши (например, escape) для включения и выключения GUI. GUI могут быть StartScreen, OptionsScreen, CharacterCreationScreen и.т.п. Когда GUI включается, вы приостанавливаете работу игры, и затем накладываете GUI. Вы также должны переключиться на другой набор пользовательских вводов, пока игра приостановлена, что бы игрок мог использовать указатель мыши и клавиатуру для взаимодействия с GUI.

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

Образец кода

Библиотека jme3-niftygui включена в jMonkeyEngine. Если вы установили jMonkeyEngine, используя один из дополнительных методов, он будет добавлен в папку Library проекта как часть установки. Если вы используете jMonkeyEngine SDK, вы добавляете его в любой проект кликнув [ПК Мыши], папку Библиотеки, выбирая Добавить библиотеку ▸ jme-niftygui, а затем [Добавить библиотеку].

Наложение пользовательского интерфейса на экран

Этот код показывает вам, как накладывать что-либо на экран с помощью GUI. Это самый распространенный вариант использования.

NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay(
    assetManager, inputManager, audioRenderer, guiViewPort);
/** Создадим новый NiftyGUI объект */
Nifty nifty = niftyDisplay.getNifty();
/** Прочитаем ваш XML и инициализируем ваш пользовательский ScreenController */
nifty.fromXml("Interface/tutorial/step2/screen.xml", "start");
// nifty.fromXml("Interface/helloworld.xml", "start", new MySettingsScreen(data));
// подключим Nifty дисплей к gui view port обработке
guiViewPort.addProcessor(niftyDisplay);
// отключим летающую камеру
flyCam.setDragToRotate(true);

В настоящее время у вас нет ScreenController — мы создадим его в следующем упражнении. Как только у вас будет ScreenController, вы будете использовать закомментированный вариант метода загрузки XML:

nifty.fromXml("Interface/helloworld.xml", "start", new MySettingsScreen());

Класс MySettingsScreen — это настраиваемый файл de.lessvoid.nifty.screen.ScreenController, в котором вы реализуете поведение своего GUI.

Если у вас много экранов или вы хотите сохранить их в отдельных файлах, существует метод, который просто загрузит дополнительный файл XML. Содержимое файлов просто добавляется к каким-либо ранее загруженным XML данным.

nifty.addXml("Interface/mysecondscreen.xml");

Следующие шаги

Теперь, когда вы скомпоновали и интегрировали GUI в своё приложение, вы хотите реализовать реакцию на ввод пользователя и сделать это в текущей игре. Время создать ScreenController!


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

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

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