Цепочки
Набор блоков — это функции, которые могут приостановить или возобновить свое выполнение при этом сохраняя свое состояние. Из процесса выполнения цепочек можно в любой момент выйти, и при следующем вызове этой функции выполнение продолжится с той же точки, откуда вы вышли. Эти блоки можно ставить на паузу, чтобы дать другим функциям немного поработать. Их можно не только запускать и останавливать, но также приостанавливать и возобновлять
- Выполнять цепочку постоянно - по достижению конца, цепочка не закончит свое выполнение, а самостоятельно перейдет к началу и будет перезапущена и так бесконечное количество раз
Этот блок необходим для повторения логической конструкции, так как блоки, добавленные в рабочую область выполняются единожды, в момент вызова блока или конструкции блоков. Подробнее о порядке выполнения блоков можно прочитать в соответствующей статье
- Выполнить не дожидаясь - исполнение этого блока не блокирует исполнение следующего блока цепочки последовательности
- Ожидать пока N истинно - блокирует выполнение цепочки, пока условие внутри него истинно
В качестве условия можно подставить любой логический блок.
- Ожидать в течении N секунд - после срабатывания, блокирует выполнение цепочки блоков на заданное количество секунд
Этот блок, почти полная замена сложной конструкции блоков с использованием таймера, выполнение которого приводило к выполнению следующих функций
- Ожидать кадр - этот блок срабатывает при отрисовке следующего кадра
- Остановить выполнение цепочки - блок останавливает алгоритм выполнения логической цепочки
- Запустить цепочку заново - срабатывание этого блока приводит к запуску цепочки с самого начала
Исполнение последовательных действий на примере
Чтобы понять, как работают цепочки, создадим небольшой проект
- Разместите на сцене три объекта: куб, конус и пирамиду. Для удобства сделайте объекты статичными
- Перейдите в редактор логики Blockly и создайте следующую логику:
- Запустите проект в режиме предпросмотра на ПК. Каждый блок логики исполняется только после того, как исполнился предыдущий
- Перейдите в редактор логики Blockly и измените все последовательные действия на одновременные:
- Запустите проект в режиме предпросмотра на ПК. Все блоки логики исполняются одновременно.
- Перейдите в режим редактирования сцены на ПК
- Добавьте под каждым объектом по простой кнопке
- Перейдите в редактор логики Blockly и измените обратно одновременные действия на последовательные
- Добавьте следующую логику:
- Запустите проект в режиме предпросмотра на ПК. Дождитесь, пока закончится выполнение последовательных действий - все объекты изменят цвет
- Нажмите на кнопку под кубом. Куб будет перемещаться по оси у до того момента, когда кнопка будет отжата. Чтобы убедиться в этом, нажмите еще раз на кнопку
- Нажмите на кнопку под конусом. Конус будет масштабироваться по заданной оси. Подойдите к пирамиде и нажмите кнопку под ней - ничего не произошло, конус продолжает масштабироваться. Это происходит потому, что последовательное действие масштабирования не завершено. Для этого нужно отжать кнопку под конусом
- Теперь нажмите кнопку под пирамидой. Пирамида начала вращение вокруг заданной оси и последовательное действие закончится только после отжатия кнопки