Перейти к основному содержимому

Управление светом кнопкой

Not (yet) implemented feature

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

Введение

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

Создание кнопки

В редакторе уровней создаем 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 - так наша лампочка будет выключена после загрузки уровня. Таблица свойств будет выглядеть примерно так:

Настройка соединений

Теперь необходимо подсоединить кнопку к лампочкам, чтобы она могла ими управлять. В списке объектов выделяем кнопку, и переходим в режим редактирования соединений.

Анимация кнопки

В первую очередь - надо подключить анимацию кнопки. Создаем новое соединение:

EventOn push down
Namebtn_1
ActionPlay anim
Delay0
Parameterturn_on

При вжатии кнопки, запускаем на ней же анимацию с именем turn_on.

И еще одно соединение:

EventOn push up
Namebtn_1
ActionPlay anim
Delay0
Parameterturn_off

При отжатии кнопки, запускаем на ней же анимацию с именем turn_off.

Помните, мы устанавливали флаг Toggleable? Он позволяет нашей кнопке иметь два состояния: вжатое и отжатое.

Управление светом

Теперь подключим кнопку к источникам света light_point. На включение:

EventOn push down
Namelight_1
ActionTurn on
Delay0.2
Parameter

Лампочка включается через 0.2 секунды после активации кнопки, это нужно, чтобы анимация поворота переключается успела проиграться до нужного момента.

И на выключение:

EventOn push up
Namelight_1
ActionTurn off
Delay0
Parameter

На самом деле, в данный момент наша кнопка уже прекрасно работает, но если мы включим свет - заметим неприятный эффект:

Модель лампочки темная. Для решения этой проблемы у нашей модели есть два скина: отключенный и включенный. В последнем случае материал плафона имеет свойство самосветимости. Нам надо только переключать скин вместе со включением света.

Переключение скина лампочки

Создаем два соединения:

EventOn push down
Namelamp_prop
ActionSet skin
Delay0.2
Parameter1
EventOn push up
Namelamp_prop
ActionSet skin
Delay0
Parameter0

Теперь лампочка светится как подобает:

Загрузки

Пример уровня из туториала можно скачать здесь: tutor_01.zip.