Материал из Скретч Вики

< Клонирование

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

Для следующих скриптов нужно иметь такие переменные:

  • (клоны) — глобальная переменная для количества клонов вообще, позволяет следить, можно ли создать клон;
  • (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.

Смотри также

Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.