Готовый перевод CEGUI In Practice / CEGUI на практике: 3. Managing input
И снова добро пожаловать!
В этом туториале мы узнаем как взаимодействовать с CEGUI во время работы программы, ОЧЕНЬ полезная возможность для Графического Интерфейса Пользователя.
CEGUI был сконструирован для работы с разными системами, использующих различные рендеры.
Так что он не связан с какой-то конкретной системой ввода.
К нашему сожалению, для демонстрации взаимодействия с CEGUI, нам нужно выбрать одну и использовать именно ее.
Я решил выбрать OIS.
Также я постараюсь затронуть специфические функции и структуры OIS, если мы будем их использовать.
Обработка ввода
Первое о чем следует упомянуть, что CEGUI позволяет легко обрабатывать ввод данных пользователем.
Когда бы действие не случилось (пользователь нажал на клавишу или мышь), CEGUI должен быть проинформирован об этом.
Функция InjectKey Down/Up удобна для обработки контроллеров, Shift, Enter и т.д.
А функция injectChar сама объясняет зачем она нужна, она обрабатывает ввод символов.
Обработка мыши работает так же, как и методы, приведенные выше.
Код, приведенный ниже, показывает, как нужно информировать CEGUI о нажатии левой кнопки мыши.
Как вы можете догадаться, есть функция injectMouseButtonUp(), которая информирует о том, когда кнопка была отпущена.
А что, если мышь движется?
Сейчас покажу:
Delta - относительные координаты пикселей на экране, на которые мышь была сдвинута с прошлой проверки.
До сих пор, мы не дали CEGUI никакого процессорного времени.
Если мы хотим, чтобы мышь двигалась, а кнопки нажимались, нам нужно чтобы CEGUI отображало эти действия.
Так что нужно сообщать ему, сколько времени прошлого с прошлого рендера.
Функция позволяет внедрить временной пульс, основанный на количестве прошедших секунд.
Как часто обновлять CEGUI - ваше дело, но большинство игр требуют обновлять GUI с помощью injectingTime каждую итерацию цикла обновления.
Если вы создаете что-то большее, чем простую утилиту, то вам понадобятся постоянные обновления.
На заметку
Я буду считать, что вы использовали OIS и знаете о ее премудростях.
Вот две функции, которые помогут вам взаимодействовать с CEGUI.
Следующая будет обрабатывать ввод с клавиатуры.
Она обрабатывает нажимание и отпускание клавиши (по их коду) и символы, которые соответствуют клавишам на клавиатуре.
Эта функция будет обрабатывать ввод с мыши (нажатие и отпускание клавиш мыши).
Функция конвертирует OIS данные о вводе с мыши в те, которые может понять CEGUI.
Сейчас код не устаревший, но если он станет таковым, то послужит примером того, как использовать OIS вместе с CEGUI.
Заключение
Понятно, что эта глава немного короче чем предыдущие,
но она дает полезную информацию о том, как взаимодействовать с CEGUI.
В следующем туториале вы узнаете как делать интересные вещи с помощью ввода.
До следующей встречи!
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется
Переведено на Нотабеноиде
http://notabenoid.org/book/29927/102236
Переводчики: proVIDec
Настройки
Готово:
