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

(перенаправлено с «Мой блок»)

определить пользовательский блок
Блок определения

Другие блоки (известные как пользовательские блоки) — категория блоков Скретч, содержащая процедуры для выбранного спрайта. Блоки этой категории окрашены в розовый цвет. Перед созданием каких-либо блоков категория пуста, за исключением кнопки «Создать блок».

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

Использование пользовательских блоков

Процедуры являются основным видом абстракции, используемой в процедурном программировании, они позволяют скретчерам писать скрипты, не зная и не задумываясь о деталях того, что делает каждый скрипт. Это также относится к встроенным блокам, таким как идти () шагов.

Например, предположим, что кто-то хочет, чтобы спрайт исчез и снова появился. Перед тем, как исчезнуть, спрайт должен воспроизвести звук и увеличить эффект прозрачность, перед тем, чтобы снова появиться, он должен уменьшить эффект прозрачность. Это может происходить в нескольких местах проекта. Без процедур скретчеру пришлось бы дублировать одну и ту же последовательность блоков в каждом месте, но, создавая блоки «исчезновение» и «появление», они могут писать скрипты так, как они думают о них:

. . .
думать [М-м-м...] (2) секунд
исчезновение
. . .
появление
играть звук (Horse v) до конца
. . .

определить исчезновение
включить звук (Ripples v)
повторить (10) раз 
  изменить эффект [прозрачность v] на (10)
end

определить появление
повторить (10) раз 
  изменить эффект [прозрачность v] на (-10)
end

Теперь, если скретчер изменит свое мнение о том, как спрайт должен исчезать или появляться, ему нужно только изменить определения блоков.

Пользовательские блоки также помогают уменьшить размер файла проекта и позволяют пользователю запустить скрипт без обновления экрана. В пользовательские блоки можно добавлять строковые и логические входные данные. Например, скретчер может создать блок прыгнуть ()::custom с входом «высота» и (высота::custom) появится в блоке «определить». Эти блоки можно перетаскивать и использовать в определении точно так же, как переменные.

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

Запуск скриптов без обновления экрана

Использование пользовательских блоков — единственный способ запуска скриптов без обновления экрана. Обновление экрана — это очень незначительное ожидание, которое происходит в конце каждой итерации блока цикла или когда используется блок ожидания. Диалоговое окно «Создать блок» предлагает отключить обновление экрана (по умолчанию оно включено). Это может сделать происходящее менее очевидным, но полезно, если вы хотите внести изменения, чтобы пользователь не видел промежуточных шагов или не ждал долгое время. Например, если использовать этот скрипт

задать [i v] значение [0]
опустить перо
повторить (200) раз 
  идти (i) шагов
  повернуть вправо на (92) градусов
  изменить [i v] на (1)
end
поднять перо

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

Альтернативой использованию этой функции является включение Турбо-режима, в результате чего все сценарии будут выполняться без обновления экрана.

Кроме того, запуск без обновления экрана не следует использовать с пользовательскими блоками, которые содержат какие-либо блоки ожидания, так как это может привести к зависанию редактора и возможному сбою.

История

Скретч 2.0

В Скретч 2.0 другие блоки были фиолетового цвета. Интерфейс, в котором создавался новый блок, был другим.

До Скретч 1.0

В Скретч 14Feb04 и Скретч 13Oct04 сценарии были категорией блоков. Категория содержала блоки, которые заставляли спрайт выполнять действия, предписанные блоками под соответствующим блоком шапкой.

При создании нового проекта категория скриптов изначально не содержала блоков.

Новый блок можно добавить в категорию Скрипты, щелкнув стрелку в правом верхнем углу области скриптов, а затем выбрав «новый скрипт» из вариантов в появившемся контекстном меню. Это добавит блок с именем «script1» (или «script», с другим номером, если уже был блок «script1») в категорию Скрипты и соответствующий блок шляпы в область скриптов.

Категория Скрипты была удалена из Скретч 28 февраля 2005 года. Процедуры не будут добавлены до Скретч 2.0.

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