В примерах этой темы использованы строчки, похожие на движение машины и ходьбу человека. При этом:
– под процедурой ДВИЖЕНИЕ имеется в виду вариант с параметрами <скорость> и <время>:
– скачковый мультик условно использует две формы (хотя в последних примерах было 3 формы и 4 шага в периоде)
Основной способ создания одновременного движения – это использование параллельных процессов. Параллельный процесс может быть конечным и бесконечным. Для сюжетного фильма характерно использование конечных параллельных процессов.
Конечный параллельный процесс создается командой:
запусти [<процесс>] например:
запусти [движение 5 20]
запусти [мультик_ск [6 7 8 7] 4 10 3]
Смысл параллельных процессов заключается в следующем.
Стандартно записанные команды выполняются в ЛогоМирах последовательно, т.е. каждая следующая команда ждет окончания предыдущей и только потом начинает выполняться. Это можно изобразить так:
Программа | Пример | Выполнение программы | |
Команда1 | для "машина движение 5 20 | ||
Команда2 | для "человек мульт_ск [1 2] 10 15 3 |
Если же команда запущена, как параллельный процесс, система не ждет ее окончания, а сразу начинает выполнять следующие команды:
|
|
Программа | Пример | Выполнение программы |
запусти [Команда1] | для "машина запусти [движение 5 20] | |
Команда2 | для "человек мульт_ск [1 2] 10 15 3 |
В результате две команды начинают выполняться параллельно.
Параллельных процессов может быть несколько:
Текст программы | Выполнение программы | |
запусти [Команда1] | ||
запусти [Команда2] | ||
запусти [Команда3] | ||
Команда4 |
Важно отметить, что если мы сначала напишем обычную команду, а затем строчку с ЗАПУСТИ, то не получим одновременного выполнения команды-1 и команды-2 (зато можем получить нежелательное одновременное выполнение строчки ЗАПУСТИ со следующей командой-3):
Текст программы | Выполнение программы | |
Команда1 | ||
запусти [Команда2] | ||
Команда3 |
Обычно «процессом» является универсальная процедура движения или мультика со всеми своими аргументами. Переключение черепашек (команда ДЛЯ) рекомендуется выполнять перед командой ЗАПУСТИ (а не внутри нее).
ПК ---
Задание-1. Доработка проекта Трактор (работайте прямо в «старой» процедуре, не делайте копию).
В конце проекта человек вышел из трактора, после чего одновременно:
- человек уходит на «юго-восток» (мультик_ск, это скорее всего уже сделано),
- трактор уезжает на «восток» без человека, как радиоуправляемый (движение, надо доделать).
--- ПК