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

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

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

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

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

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

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

Применение

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

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

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

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

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

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