Представлена модель сторожевой собаки: Dog_Guard

Скачать/открыть:
Описание модели (PDF-файл);
Короткая видео-демка (wmv-формат);
Только модель (rbxl-файл в ZIP-архиве);
Используемые скрипты:
Roblox_Script_DogGuard_Alarm_lua.htm;
Roblox_Script_DogGuard_Hit_lua.htm;
Roblox_Script_DogGuard_Model_lua.htm.
Все вместе — в одном ZIP-архиве.
Основная (краткая) информация
Более детально рекомендуется посмотреть в PDF-файле.
Модель «Сторожевая собака» «умеет»:
- распознавать факт проникновения в запретную зону (кол-во запретных зон концептуально не ограничено);
- подавать текстовый/звуковой/световой сигнал «Тревога»;
- визуализировать номер запретной зоны, где был зафиксирован факт проникновения;
- а также, позволяет реализовать механизм «местной автоматики» (соответствующие заглушки предусмотрены в соответствующих скриптах).

Перечень выносок на рисунке выше:
1 – root (корень) модели;
2 – звук тревоги («Гав»);
3 – звук «спокойствия» (поскуливание);
4 – папка, где хранятся переменные модели, необходимые для ее функционирования;
5 – основной скрипт модели (циклическая обработка данных);
6 – Signal_Model: вложенная модель (система сигнализации: текст/звук/свет);
7 – объект класса MeshPart (внешний вид собаки);
8 – оболочка: реакция на касание собаки (успокоение собаки, снятие сигнала «Тревога»);
9 – собственно, «запретные зоны» (их кол-во и наименования не регламентируется).
Модель содержит 3 скрипта (см. ниже):
Script_Alarm_Yes − обработка события «касание (hit) запретной зоны».
Script_Guard – основной цикл обработки данных;
Script_Dog_Hit – обработка события «касание (hit) собаки»;
Signal_Model — предназначена для визуализации сигнала «Тревога».
«Умеет»:
• подавать текстовый/световой сигнал «Тревога»;
• визуализировать номер запретной зоны, где был зафиксирован факт проникновения.

Перечень выносок на рисунке выше:
1 – root (корень) модели;
2 – световой сигнал;
3 – текстовый сигнал: передняя часть текстового поля, где отображается номер соответствующей запретной зоны;
4 – текстовый сигнал: задняя часть текстового поля, где отображается номер соответствующей запретной зоны;
5 – шток (для «крепления» элементов, обозначенных выносками 2−4).
Part_Dog — предназначена для интерактивного взаимодействия (hit, касание) с собакой.
Цель: отмена (сброс) сигнала «Тревога» (см. раздел 2.1, выше) и «успокоение» собаки (останов звукового сигнала).

Перечень выносок на рисунке выше:
1 – root (корень);
2 – переменная TimeDelay (тип NumberValue; размерность: секунды; значение по умолчанию = 3), используемая в скрипте Script_Dog_Hit;
3 – скрипт Script_Dog_Hit, где реализован алгоритм обработки события «касание (hit) собаки».
Part_??_Alarm — собственно, область запретной зоны.
Событие «касание (hit)» с ней – инициирует сигнал «Тревога».
Нет концептуальных ограничений на количество таких зон и/или их наименования.
Единственное требование: значение переменной Num (см. ниже) должно быть уникальным для каждой запретной зоны (в рамках модели «Сторожевая собака»).
Примечание − цепочка символов ?? (см. идентификатор запретной зоны в заголовке раздела) актуальна в рамках приведенного примера (обеспечивает уникальность идентификатора запретной зоны, что в общем случае не является обязательным).
Т.е., запись Part_??_Alarm ассоциируется (например) с Part_01_Alarm; Part_02_Alarm; Part_03_Alarm и т.д…

Перечень выносок на рисунке выше:
1 – root (корень);
2 – переменная Num (тип IntValue): уникальный номер запретной зоны;
3 – переменная TimeDelay (тип NumberValue; размерность: секунды; значение по умолчанию = 1), используемая в скрипте Script_Alarm_Yes;
4 – скрипт Script_Alarm_Yes, где реализован алгоритм обработки события «касание (hit) запретной зоны».
Папка Vars модели «Сторожевая собака».
В этой папке (см. выноску 4 на рисунке 2) размещены основные переменные, используемые для:
• настройки модели;
• выполнения соответствующих алгоритмов модели.


Исходный текст скрипта Script_Guard см. здесь.
Формирование и настройка модели «Сторожевая собака»
«Запретные зоны»
Добавление новых «запретных зон»
Для добавления новой зоны лучше всего использовать штатный метод «дублирования» одной из уже существующих (объект Part_??_Alarm). ОписАние здесь не приводится.
Затем, переместить новую – в заданное место, изменить (при необходимости) ее размеры (ориентацию, цвет и т.д.) и переименовать ее соответствующим образом.
Далее, ОБЯЗАТЕЛЬНО присвоить ей уникальный номер (см. переменную Num на рисунке 5, выноска-2).
Удаление «запретной зоны»
Для удаления ненужной зоны необходимо использовать штатные методы «выбор» и «удаление» соответствующего объекта Part_??_Alarm (описАние здесь не приводится)
Специфика настройки «запретной зоны»
Специфика настройки (если это необходимо) включает следующее:
• соответствующее изменение (при необходимости) значения переменной TimeDelay (см. рисунок 5, выноска 3);
• доработка соответствующим образом скрипта Script_Alarm_Yes (см. рисунок 5, выноска 4 и рисунок 7).

«Собака» (Part_Dog)
Специфика настройки (при необходимости) включает следующее:
• соответствующее изменение значения переменной TimeDelay (см. рисунок 4, выноска 2);
• доработка соответствующим образом скрипта Script_Dog_Hit (см. рисунок 4, выноска 3 и рисунок 8).

Основной цикл обработки данных модели.
Настройка основного цикла обработки данных (см. скрипт Script_Guard) производится с помощью основных переменных модели «Сторожевая собака».
Не так страшен черт, как его малюют…
🙂

Настоятельно рекомендуется скачать ZIP-архив, где «все в одном флаконе» и просто «пощупать» модель на практике…
Дата: 15.10.2024