Управление светом кнопкой
Некоторые функции, описанные в настоящем документе, более не поддерживаются, либо начнут поддерживаться в будущем.
Введение
В этом туториале рассказывается о том, как создать анимированную кнопку, управляющую двумя лампочками.
Создание кнопки
В редакторе уровней создаем entity prop_button
. Задаем произвольное имя, например btn_1
. В свойство Model file
устанавливаем подходящую модель кнопки,
например models/electro/switch.dse
и устанавливаем флаг Toggleable
, для того, чтобы кнопка работала в режиме переключателя. Таблица свойств будет выглядеть примерно так:
Создание лампочек
Каждая лампочка состоит из двух частей: непосредственно источник света, и модель светильника. Повторяем процедуру для необходимого количества лампочек.
Модель светильника
В редакторе уровней создаем entity prop_dynamic
. Устанавливаем подходящую модель, например meshes/light/lamp.dse
,
задаем произвольное имя, например lamp_prop
и перемещаем в подходящее место. Таблица свойств будет выглядеть примерно так:
Источник света
Создаем entity light_point
и размещаем его непосредственно перед визуальной моделью светильника.
Задаем имя light_1
и устанавливаем цвет и яркость по желанию. Устанавливаем флаг Initially dark
- так наша лампочка будет выключена после загрузки уровня. Таблица свойств будет выглядеть примерно так:
Настройка соединений
Теперь необходимо подсоединить кнопку к лампочкам, чтобы она могла ими управлять. В списке объектов выделяем кнопку, и переходим в режим редактирования соединений.
Анимация кнопки
В первую очередь - надо подключить анимацию кнопки. Создаем новое соединение:
Event | On push down |
---|---|
Name | btn_1 |
Action | Play anim |
Delay | 0 |
Parameter | turn_on |
При вжатии кнопки, запускаем на ней же анимацию с именем turn_on
.
И еще одно соединение:
Event | On push up |
---|---|
Name | btn_1 |
Action | Play anim |
Delay | 0 |
Parameter | turn_off |
При отжатии кнопки, запускаем на ней же анимацию с именем turn_off
.
Помните, мы устанавливали флаг Toggleable
? Он позволяет нашей кнопке иметь два состояния: вжатое и отжатое.
Управление светом
Теперь подключим кнопку к источникам света light_point
. На включение:
Event | On push down |
---|---|
Name | light_1 |
Action | Turn on |
Delay | 0.2 |
Parameter |
Лампочка включается через 0.2 секунды после активации кнопки, это нужно, чтобы анимация поворота переключается успела проиграться до нужного момента.
И на выключение:
Event | On push up |
---|---|
Name | light_1 |
Action | Turn off |
Delay | 0 |
Parameter |
На самом деле, в данный момент наша кнопка уже прекрасно работает, но если мы включим свет - заметим неприятный эффект:
Модель лампочки темная. Для решения этой проблемы у нашей модели есть два скина: отключенный и включенный. В последнем случае материал плафона имеет свойство самосветимости. Нам надо только переключать скин вместе со включением света.
Переключение скина лампочки
Создаем два соединения:
Event | On push down |
---|---|
Name | lamp_prop |
Action | Set skin |
Delay | 0.2 |
Parameter | 1 |
Event | On push up |
---|---|
Name | lamp_prop |
Action | Set skin |
Delay | 0 |
Parameter | 0 |
Теперь лампочка светится как подобает:
Загрузки
Пример уровня из туториала можно скачать здесь: tutor_01.zip.