Использование событий#

Using Events

В этом уроке рассматривается использование событий в VEXcode V5. К концу вы узнаете, как отправить событие и как заставить другой набор блоков реагировать на него.

События позволяют отдельным стекам блоков в проекте взаимодействовать друг с другом, используя блоки из категории Логика - События. Блоки, имена которых начинаются с broadcast, сигнализируют о том, что произошло событие, а блоки, имена которых начинаются с when, в ответ запускают подключенный к ним стек блоков.

Добавьте в свой проект блок трансляции или блок трансляции и ожидания.

Скриншот категории «Логика — События» на панели инструментов, где выделены блоки broadcast и broadcast and wait.

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

Скриншот открытого выпадающего списка блока трансляции, на котором показана опция my_event, а также опции «Новое событие», «Переименовать событие» и «Удалить событие "my_event"».

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

Скриншот категории «Логика — События» на панели инструментов, с выделенными блоками «Когда запущено» и «Когда я получаю».

Как только блок при получении совпадает с именем события, используемым блоком трансляции, запуск проекта позволяет обоим стекам работать одновременно. Например, этот проект вращается до тех пор, пока не будет нажата кнопка на экране «Мозга», а затем транслирует событие, которое останавливает движение робота.

При запуске робот поворачивается до тех пор, пока не будет нажата кнопка на экране, а затем передает событие, которое останавливает робота при его получении.#
при запуске
поворот [вправо v]
ждать пока <экран нажат?>
транслировать [my_event v]
когда получено [my_event v]
остановить движение

Блоки, начинающиеся с when, также можно найти прикрепленными к датчикам; они запускают прикрепленные к ним блоки всякий раз, когда выполняется условие этого датчика. Например, блоки when Brain screen и when Bumper Switch.

Когда блокируется экранная панель Brain.#
когда экран Brain [нажат v] :: hat events
Блок переключателя бампера.#
когда [BumperA v] [нажат v] :: hat events