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

Основной Цикл Обновления

Опубликованно: 04.05.2017, 20:49
Последняя редакция, Andry: 04.05.2017 20:49

Расширение приложения из com.jme3.app.SimpleApplication предоставляет вам цикл обновления. Здесь вы реализуете свою логику игры (игровая механика).

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

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

  • Инициализация — один раз выполните метод simpleInitApp().
  • Основной Цикл Обновления
    1. Слушатели Ввода реагируют на щелчки мышью и нажатия на клавиатуру. Обработка ввода
    2. Обновление состояние игры:
      1. Обновление общего состояния игры — выполнение состояний приложения
      2. Обновление кода пользователя. Выполните метод simpleUpdate().
      3. Логическое обновление сущностей — выполнение пользовательских элементов управления
    3. Рендеринг аудио и видео
      1. Отображение состояний приложения.
      2. Рендеринг Сцены.
      3. Рендеринг пользовательского кода — выполните метод simpleRender().
    4. Повторите цикл.
  • Выйти — если пользователь запрашивает exit(), выполните cleanup() и destroy().
    Окно jME закрывается, и цикл завершается.

Применение

В тривиальном SimpleApplication (например, учебнике Hello World) весь код либо находится в методе simpleInitApp() (инициализация), либо simpleUpdate() (поведение), либо в вспомогательном методе/классе, который вызывается из одного из этих двух. Этот тривиальный подход сделает ваш основной класс очень длинным, трудным для чтения и сложным в обслуживании. Вам не нужно загружать всю сцену одновременно, и вам не нужно постоянно запускать все тесты условных операторов.

Лучшей практикой является модуляция вашей игровой механики и распространение кода инициализации и обновления цикла на несколько объектов Java:

  • Переместите модульные кодовые блоки из метода simpleInitApp() в AppStates. Прикрепить AppStates для инициализации пользовательских подмножеств «одного подземелья» и отсоединить его, когда игрок покинет это «подземелье».
    Примеры: аудио/визуальные эффекты погоды/небо, формы столкновений физики, подкорневые узлы отдельных подземелий, включая NPC подземелий и.т.д.
  • Переместите модульные кодовые блоки из метода simpleUpdate() в циклы обновления пользовательских элементов управления для управления поведением отдельных объектов (NPC) и в метод обновления AppStates для управления мировыми событиями.
    Примеры: поведение погоды, поведение света, физическое поведение, индивидуальное поведение NPC, поведение ловушек и.т.д.

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

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

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