Материал из Скретч Вики
Обнаружение можно сделать с помощью локальных переменных или с помощью массивов. Локальная переменная копируется в каждый клон отдельно, но спрайт не может узнать значение локальных переменных для каждого клона. Для этого клону нужно обнаруживать себя самостоятельно и посылать сообщения, чтобы спрайт делал нужный скрипт.
Для следующих скриптов нужно иметь такие переменные:
(клоны)
— глобальная переменная для количества клонов вообще, позволяет следить, можно ли создать клон;(ID клона)
— локальная переменная, копирующаяся в клоны, чтобы знать, какой по счёту клон;(клон?)
— локальная переменная, которая позволяет узнать клон или просто спрайт,
чтоб при получении сообщения или нажатия на спрайт, если спрайт оказывается клоном выполняет определённое действие;
(переменные::list)
— список для хранения значений каждого клона (ID клона соответствует номеру строчки).
В спрайте необходимо создать данный скрипт:
когда щёлкнут по зелёному флагу удалить [всё v] из [переменные v] задать [клоны v] значение (0) задать [клон? v] значение (0)
Для создания клонов используется следующий скрипт
добавить [] к [переменные v] изменить [клоны v] на (1) создать клон (себя самого v)
Нужное значение для клона записывается в список
когда я начинаю как клон задать [клон? v] значение (1) задать [ID клона v] значение (клоны) повторять всегда заменить элемент (ID клона) в [переменные v] на (...) end
(элемент (x) из [переменные v] :: list)
покажет значение для клона с ID равным x.
Если нужное значение является логическим, необходимо использовать логические блоки
когда я начинаю как клон задать [ID клона v] значение (клоны) повторять всегда заменить элемент (ID клона) в [переменные v] на <...> end
<(элемент (x) из [переменные v] :: list) = [истина]>
покажет значение для клона с ID равным x.