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

groovy_event

Опубликованно: 26.01.2018, 18:57
Последняя редакция, Andry: 28.01.2018 18:24

Событие — Триггер — Менеджер(Event – Trigger — Manager)

Event, Trigger, Manager — это 3 наиболее важных термина в программировании игр и сценариях, которые стоит упомянуть в первую очередь!

Событие

Событие(Event) — это основной элемент (концепция) и единица Системы Обмена Сообщениями. Когда компоненты в игровом мире общаются друг с другом по средством конвейеров, Сообщения из одного объекта должны быть отправлены другим объектам, и также тем что должны знать об этом (для осведомления), когда что-то происходит. Это называется событием(event); и внутри события содержится фрагмент информации, которая описывается в Сообщении.

Если написании Сценариев(Скриптов), События также играют важную роль. Это почти показано в EventHook для цикла как: onInit, onUpdate, onClick.. Он также обеспечивает ad-hoc-связь, которая, в свою очередь, обеспечивает дополнительное сложное и гибкое использование существующих систем. Позже мы углубимся в его использование.

EventBus

Парадигма Событий реализуется по-разному в каждом программном обеспечении, где они требуются, в соответствии с конкретными требованиями. В последнее время у нас (мир Java) есть нечто довольно общее, чем набор для широкого круга случаев и использование интуитивных методов для программирования. Это называется EventBus. И, к счастью, EventBus отлично вписывается в решение для создания скриптов Groovy (kudos!)

… и несколько Событий. Разъяснения!

http://code.google.com/p/guava-libraries/wiki/EventBusExplained

http://codingjunkie.net/guava-eventbus/

Groovy Eventbus HelloWorld

import com.google.common.eventbus.EventBus
import com.google.common.eventbus.Subscribe

EventBus eventBus = new EventBus();

class EventHandler{
    @Subscribe
    public void hello(CustomEvent event){
        println "Hello world"
    }
}

class CustomEvent{

}
handler = new EventHandler();
eventBus.register(handler);

eventBus.post(new CustomEvent());

В этом примере,

Здесь EventBus будет воспроизводить средства коммуникации медиа в нашем решении для создания скриптов Groovy.

Hooks

Триггер

Если вы собираете свой игровай мир activites от Action, Trigger — это кирпич для создания Gameplay. Это комбинация: Event + Condition → Action(Событие + Условие → Действие)

Концепция триггера может быть описана следующим образом: Когда произойдет Событие, если он прошел проверку Условия, Действие выполняется. Более подробное описание envolve: Enviroment(Окружение) — определенный Context этих 3 (E — C — A), Durations(Продолжительности), Threaded или нет, Executor … Но здесь мы относимся к самой простой форме, Context является единственной конкретной процедурой Event и его Global(Глобальной) осведомленности.

В Groovy,

  • Событие основано на Классах, упомянутом в главе выше.
  • Условие может быть смоделировано с Closure(Закрытием)
  • Действие также очень подходит для представления Closure.

Пример1:

Пример1:

Пример2:

Пример2:

Manager

Менеджер — это концепция того, кто имеет ответственность и власть над другими (как над детьми или работниками в реальном мире), по сути это список своих потомков, и он имеет основные операции, такие как добавление, удаление для управления этим списком … Вы также можете думать об этом как о контроле над парадигмой MVC, где он является посредником между моделью и представлением. В JME3 вы видите «Менеджер» где по всюду, например AssetManager, StateManager в качестве wraper базовых функций. Таким образом, в событии переплелось довольно много понятий сразу, Менеджер в написании Сценариев чрезвычайно полезен и полностью заполняет недостающую часть картины, которую мы рисуем уже какое-то время здесь.

  • Чтобы немного устранить туман путаницу о смешанных концепциях, есть несколько практических советов о реализации Менеджера:
    • Менеджер действует глобально, удобно: обычно Singleton или действительно просто ссылается в скрипте
    • Менеджер обертывает базовые данные интуитивным способом
    • Менеджер имеет общую информацию
    • Выполняется менеджеров часто: например, в цикле обновления по умолчанию
    • У менеджера есть власть над своими потомками: его управляет своими потомками; в почти сценариях потомок покидая список своего Менеджера, становится пустым (как null)

Все концепции и wisdoms описывают гораздо более подробно в Дизайне Игровой архитектуры и Дизайне фреймворка Atom.

GQuery

Подставка GQuery для «JQuery как в Groovy. JQuery — известная фреймворк в мире JavaScript и Web. GQuery пытается предоставить некоторые из своих возможностей, immtimate свой синтаксис и сладости, использовать Groovy:

  • Query, выберите Дерево Узлов (например, HTML, Nifty, …) с минимальным синтаксисом Path, таким же, как XPath
  • Крючки к событиям Узла (компоненты, элементы ..) с помощью Eventbus

GQuery является частью моих дополнений для NiftyGUI, другое:

  • Собрать Groovy
  • CSS (каскадный стиль) реализация (для NiftyGUI), даже МЕНЬШЕ
  • упрощенный фреймворк Локализации
  • много для напичания сценариев и функциональные сладости для NiftyGUI

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

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

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