Занятие 5.3 Создание логики светофора

Цель: разработать полноценную логику образовательного проекта "Правила дорожного движения" согласно техническому заданию.

Задачи:

-   Научиться применять функцию созданную на прошлом занятии

-   Познакомиться с объектом таймер и его базовыми логическими конструкциями

-  Закрепить навык работы с вкладками редактора логики

-  Усвоить навыки тестирования своих проектов на баги/ошибки

-  Закрепить навыки использования свойств объекта в редакторе логики

-  Усвоить навык использования объекта “Зона”

-  Научиться работать с освещением в редакторе логики

-  Познакомиться с блоком список и создать простейший список

Методические материалы для подготовки к занятию:

Пошаговая инструкция по разработке кейсов #6.

Собираем и настраиваем логику работы светофора.

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

Далее нам понадобится уже знакомое событие - “В момент инициализации”. Поместим внутрь него следующие блоки. Здесь мы используем нашу функцию, которую мы создали на прошлом занятии - “Обновление времени”.

  • Телепортируемся в точке появления игрока, чтобы всегда начинать игру в правильной позиции.
  • Задаем увеличенную интенсивность света для красного точечного света. Да-да, мы можем изменять параметры точечного света и через редактор логики Blockly.

 Также, давайте сразу рассмотрим свойства объекта “Точечный свет”. В нём можно изменять цвет света, дистанцию на которую он будет светить и интенсивность света.

  • Важный пункт нашей логической конструкции это таймер. Он должен работать бесконечно с интервалом 1 секунда, чтобы следующие блоки могли функционировать в нужной логике.

 Определение: Таймер (от англ. Timer) — в информатике средство обеспечения задержек и измерения времени средствами компьютера.

 У таймера в Varwin есть следующие логические конструкции: 

  • Не забудьте присвоить значения переменным, которые мы создали ранее.
  • И последнее, используем нашу функцию “Обновление времени” для вывода времени на светофор.

 Далее, нам понадобится событие объекта “Таймер” - таймер сработал.

 Внутри него мы реализуем логику переключения цвета светофора через определенное время, используя условные конструкции. Переменная время светофора будет отвечать за то, сколько будет светить определенный цвет. Зеленый и красный свет будут длится 5 секунд, желтый 3 секунды. 

Чтобы переключать цвета светофора нам понадобится переменная “Цвет”. Каждый цвет будет обозначен своей цифрой. Красный - 1, Желтый - 2, Зеленый - 3.

Применяя ранее полученные навыки, обучающиеся разрабатывают проекты и тестируют их на VR-HMD устройствах.

 Логика движения машины по маршруту.

 Для того чтобы заставить нашу “Спортивную машину” двигаться нам необходимо познакомиться с новым типом данных - это список (более подробно мы рассмотрим его в следующем кейсе).

 Стандартный список в Varwin создается из трех элементов, нам же нужно четыре элемента в списке. Для того, создаем список с тремя элементами:

Далее, нажимаем на шестеренку и добавляем еще один элемент в список:

Теперь располагаем точки, которые мы создали для маршрута машины, в списке и присваиваем переменной “Маршрут” этот список.

 Также, задаем машине действие передвигаться по нашему новому маршруту. 

Как вы заметили, у действия “Перемещение по маршруту” есть несколько свойств, давайте рассмотрим их подробнее.

Повторяясь

Туда-сюда

Один раз

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

В этом случае машина проедет по маршруту в одну сторону и вернется в первоначальную позицию.

Если выбрано свойство “Один раз”, то машина проедет по маршруту один раз и останется в конечной точке.

Теперь нам только осталось сделать логику поворота машины в нужную сторону при преодолении поворотов на нашем маршруте. Это будет самостоятельной работой.

Финальная логика должна выглядеть так, создайте её в отдельной вкладке редактора логики: 

Собираем логику задания.

Последнее что нужно сделать в текущем кейсе, это собрать логику задания. Помните мы ставили вспомогательные объекты “Зона”? Ага, теперь нам нужно настроить их.

Давайте подумаем что нам нужно выводить на текстовую панель при вхождении в определенную зону и задать действия.

В момент инициализации задаём первичный текст задания.

При попадании в запретную зону игрок должен телепортироваться в “Точка появления игрока”.

Остальную логику Вам необходимо реализовать самостоятельно. Также, создайте её в отдельной вкладке редактора логики. Финальный вид логики должен быть примерно таким: 

Обязательно протестируйте собранное приложение на работоспособность, если что-то не работает, то ищите баги и исправляйте их. Если что-то не так попробуйте свериться с нашим маршрутом разработки данного кейса.

 Если у вас всё заработало - поздравляем! Мы закончили сборку еще одного увлекательного кейса и можем двигаться дальше. Мы изучили много нового материала. Создали свой первый список, познакомились с функциями, узнали что такое точечный свет и как его настраивать. Закрепили навыки работы с зонами, примитивами и уже изученными логическими блоками.

 Финальный вариант кейса выглядит подобным образом: 

Рефлексия. Получилась ли у Вас локация соответствующая техническому заданию? Что было реализовать сложнее всего? Сложно было работать с условиями и зонами? У всех получилось? Переменные в совокупности с условиями тоже выглядят сложными конструкциями, у всех появилось понимание как у нас работает светофор?

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

 Какие есть свойства у действия передвижение по маршруту? Чем они отличаются?

  1. Что такое таймер и для чего его можно использовать?
  2. В чем разница между событиями «таймер сработал» и «таймер завершился»?
  3. Какие свойства есть у объекта точечный свет и как их можно использовать в Blockly?
  4. Как работают множественные условия и какие логические операторы в условиях существуют?
Последнее изменение: Четверг, 1 Февраль 2024, 17:13