Глава XIII. Деревья, решетки, кнопки, ящики.
§ 13.3 Кнопки и вращающиеся рычаги
В этой статье мы расскажем о создании кнопок и вращающихся рычагов. Перед прочтением статьи рекомендуем ознакомится со следующими энтити-объектами:
1. Создание кнопок
В нескольких предыдущих статьях мы уже кратко рассказывали о созданни кнопок, остановимся на них более подробно.
Кнопки используюся в основном для открытия дверей, вызова лифта и для включения/выключения света. Изначально создается браш необходимой формы, затем он превращается в объект
func_button. Давайте рассмотрим случай, когда нажатие на кнопку приводит к выключению света.
Где-нибудь на стене разместим браш с размерами 10х8х2 юнита (размеры довольно маленькие, т.к. это всего лишь выключатель). Закрасим этот браш с видимой стороны анимированной текстурой с длинным названием
+0FIFTSSTCH4 (см. рис. ниже). Это хорошая текстура выключателя. Когда мы нажмем на кнопку, текстура сменится, и создастся впечатление, что выключатель нажат.
Превратим браш в объект
func_button и выставим следующие свойства и флаги:
Targetted object - light1 (так будет называться источник света, который мы будем включать этой кнопкой);
Sounds - lightswitch (звук при нажатии на выключатель);
Delay before reset - 0 (время в секундах, в течении которого кнопка не работает после нажатия. В данном случае кнопку можно будет нажимать сколь угодно часто. Если поставить значение <-1>, то кнопку можно будет использовать только один раз за раунд).
Флаги:
Don't move - если отмечено, то при нажатии кнопка не вдавливается в стену, а остается на месте. Очень полезный флаг, т.к. позволяет избежать необходимости выставления ряда дополнительных параметров (см. ниже);
Toggle - если отмечено, то кнопка будет оставаться в нажатом положении, пока ее снова не используют. В нашем случае, т.к. кнопка не двигается, этот флаг будет "удерживать" переключившуюся текстуру. В таком случае текстура будет меняться один раз при каждом нажатии
Теперь рассмотрим остальные возможные параметры кнопки.
Angle - направление, в котором двигается кнопка при нажатии, задается в градусах. Мы рекомендуем определять направление на виде сверху, т.к. это удобнее всего;
Speed - скорость, с которой кнопка будет вдавливаться в стену (если установлен флаг
, то этот параметр бесполезен);
Health - <жизни> кнопки. Если Вы хотите, чтобы кнопку можно было нажать выстрелом, то установите здесь значение больше 0, например, 1;
Delay before trigger - время в секундах, которое пройдет после нажатия на кнопку и активацией объекта, указанного в параметре . Например, если указать здесь значение 5, то свет включится только через 5 секунд после нажатия кнопки;
Lip - этим параметром можно изменить расстояние, на которое кнопка вдавливается в стену. По умолчанию кнопка нажимается на расстояние своей толщины, таким образом, она как бы скрывается в стене в нажатом положении. Если Lip положительный (Lip измеряется в юнитах), то кнопка <проедет> меньшее расстояние, а если отрицательный - большее.
Подробнее об определении Lip Вы можете прочитать в статье <Сдвигающиеся и вращающиеся двери>.
Также у кнопок есть редко используемые флаги и . Если отмечен первый, то из кнопки будут сыпать искры, если второй - то кнопка будет нажиматься от простого прикосновения игрока (не надо нажимать кнопку