CEGUI In Practice / CEGUI на практике: 3. Managing input

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

И снова добро пожаловать!

proVIDec 05.06.12 в 09:17

0

В этом туториале мы узнаем как взаимодействовать с CEGUI во время работы программы, ОЧЕНЬ полезная возможность для Графического Интерфейса Пользователя.

proVIDec 05.06.12 в 09:52

0

CEGUI был сконструирован для работы с разными системами, использующих различные рендеры.

proVIDec 05.06.12 в 09:53

0

Так что он не связан с какой-то конкретной системой ввода.

proVIDec 05.06.12 в 09:54

0

К нашему сожалению, для демонстрации взаимодействия с CEGUI, нам нужно выбрать одну и использовать именно ее.

proVIDec 05.06.12 в 09:56

0

Я решил выбрать OIS.

proVIDec 05.06.12 в 09:54

0

Также я постараюсь затронуть специфические функции и структуры OIS, если мы будем их использовать.

proVIDec 05.06.12 в 10:00

0

Обработка ввода

proVIDec 05.06.12 в 10:00

0

Первое о чем следует упомянуть, что CEGUI позволяет легко обрабатывать ввод данных пользователем.

proVIDec 05.06.12 в 10:03

0

Когда бы действие не случилось (пользователь нажал на клавишу или мышь), CEGUI должен быть проинформирован об этом.

proVIDec 05.06.12 в 10:04

0

Функция InjectKey Down/Up удобна для обработки контроллеров, Shift, Enter и т.д.

proVIDec 05.06.12 в 10:06

0

А функция injectChar сама объясняет зачем она нужна, она обрабатывает ввод символов.

proVIDec 05.06.12 в 10:07

0

Обработка мыши работает так же, как и методы, приведенные выше.

proVIDec 05.06.12 в 10:08

0

Код, приведенный ниже, показывает, как нужно информировать CEGUI о нажатии левой кнопки мыши.

proVIDec 05.06.12 в 10:12

0

Как вы можете догадаться, есть функция injectMouseButtonUp(), которая информирует о том, когда кнопка была отпущена.

proVIDec 05.06.12 в 10:14

0

А что, если мышь движется?

proVIDec 05.06.12 в 10:14

0

Сейчас покажу:

proVIDec 05.06.12 в 10:14

0

Delta - относительные координаты пикселей на экране, на которые мышь была сдвинута с прошлой проверки.

proVIDec 05.06.12 в 10:16

0

До сих пор, мы не дали CEGUI никакого процессорного времени.

proVIDec 05.06.12 в 10:18

0

Если мы хотим, чтобы мышь двигалась, а кнопки нажимались, нам нужно чтобы CEGUI отображало эти действия.

proVIDec 05.06.12 в 10:18

0

Так что нужно сообщать ему, сколько времени прошлого с прошлого рендера.

proVIDec 05.06.12 в 10:19

0

Функция позволяет внедрить временной пульс, основанный на количестве прошедших секунд.

proVIDec 05.06.12 в 10:20

0

Как часто обновлять CEGUI - ваше дело, но большинство игр требуют обновлять GUI с помощью injectingTime каждую итерацию цикла обновления.

proVIDec 05.06.12 в 10:22

0

Если вы создаете что-то большее, чем простую утилиту, то вам понадобятся постоянные обновления.

proVIDec 05.06.12 в 10:51

0
+1

На заметку

proVIDec 05.06.12 в 10:38

0

Я буду считать, что вы использовали OIS и знаете о ее премудростях.

proVIDec 05.06.12 в 10:39

0

Вот две функции, которые помогут вам взаимодействовать с CEGUI.

proVIDec 05.06.12 в 10:24

0

Следующая будет обрабатывать ввод с клавиатуры.

proVIDec 05.06.12 в 10:27

0

Она обрабатывает нажимание и отпускание клавиши (по их коду) и символы, которые соответствуют клавишам на клавиатуре.

proVIDec 05.06.12 в 10:28

0

Эта функция будет обрабатывать ввод с мыши (нажатие и отпускание клавиш мыши).

proVIDec 05.06.12 в 10:33

0

Функция конвертирует OIS данные о вводе с мыши в те, которые может понять CEGUI.

proVIDec 05.06.12 в 10:35

0

Сейчас код не устаревший, но если он станет таковым, то послужит примером того, как использовать OIS вместе с CEGUI.

proVIDec 05.06.12 в 10:45

0

Заключение

proVIDec 05.06.12 в 09:17

0

Понятно, что эта глава немного короче чем предыдущие,

proVIDec 05.06.12 в 10:36

0

но она дает полезную информацию о том, как взаимодействовать с CEGUI.

proVIDec 05.06.12 в 10:36

0

В следующем туториале вы узнаете как делать интересные вещи с помощью ввода.

proVIDec 05.06.12 в 10:38

0

До следующей встречи!

proVIDec 05.06.12 в 09:17

0
Минутку...