Вы находитесь на странице: 1из 16

Построить свой собственный Blocks

5.0

S NAP! Справочное руководство

Брайан Харви

Jens Mönig
Содержание

Я. Блоки, скрипты и спрайты ................................... 4


VII. Объектно-ориентированное программирование с спрайтов ... 55
Хет блоки и командные блоки 5
A. Первый класс спрайтов ............................................... ............. 55
A. Спрайты и параллелизм ............................................... ......... 7
Костюмы и звуки 7
B. Постоянная и временная Клоны ..................................... 56

Inter-Sprite Связь с Broadcast 8 C. Отправка сообщений спрайтов .............................................. . 56


Полиморфизм 57
B. Вложение спрайты: Анкеры Часть .......................................-
C. Reporter Блоки и выражения .......................................... 9 D. Местное государство в спрайтов: Переменные и атрибуты ................... 58

D. Предикаты и Условная оценка ............................... 11 E. Прототипы: Родители и дети ...................................... 58

E. Переменные ................................................. ........................ 12


F. Наследование делегации ............................................... .... 59

Глобальные переменные 13 ГРАММ.Список атрибутов ............................................... ................ 60

Переменный сценарий 14 ЧАС. Костюмы первого класса и звуки ...................................... 61


Переименование переменных 14 Медиа Исчисление с костюмами 61
Переходные переменные 15 Медиа Исчисление с Звуки 64

F. Отладка ................................................. ....................... 16


VIII. ООП с процедурой ..................................... 67
Кнопка паузы 16
Breakpoints: приостановить все блок 16 A. Местное государство с переменным сценарием ....................................... 67

Видимый шаговый 17 B. Сообщения и процедура отправки ..................................... 68


C. Наследование с помощью делегации ............................................... ... 69
ГРАММ. Etcetera ................................................. .......................... 18
D. Реализация прототипирования ООП ............................. 70
II. Сохранение и загрузка проектов и средств массовой информации ............ 22
IX. Внешний мир ............................................ 73
A. Локальное хранилище ................................................ ................... 22
B. Создание учетной записи Облако .............................................. .... 22
A. Всемирная паутина .............................................. ....... 73
B. Аппаратные устройства ................................................ ............ 74
C. Сохранение в облаке .............................................. ............. 23
C. Дата и время ............................................... ................. 74
D. Загрузка сохраненных проектов ............................................... ....... 23
E. Частные и общественные проекты .............................................. .. 24 ИКС. Продолжения ................................................. ..... 75

III. Создание блока ............................................... .. 25 A. Продолжение прохождения Стиль ............................................... . 76


B. Вызов / Run ж / Продолжение ............................................ ... 79
A. Простые блоки ................................................ ................... 25
Нелокальное выход 81
Пользовательские блоки с входами 27
Редактирование свойств блока 28
XI. Элементы пользовательского интерфейса .................................... 83
B. Рекурсия ................................................. ........................ 28
A. Панель инструментов Особенности ............................................... ............. 83
C. Блочные Библиотеки ................................................ ................. 29
Щелчок! Логотип Меню 83
D. Пользовательские блоки и Visible Stepping .................................... 30
Меню Файл 84

Внутривенно списки Первого класса ............................................... .... 31


Меню Облака 97
Меню Настройки 98
A. список Блок ................................................. ................ 31
Видимые управления шаговые 101
B. Списки Списки ............................................... ..................... 32 Стадия Изменение размера кнопки 101
C. Функциональный и императив Список Программирование ...................... 33 Кнопки управления проектами 101
D. Высший порядок Список операции и кольцо ............................. 34 B. Palette Площадь ............................................... ............. 102
E. Просмотр таблицы против Просмотр списка ............................................ ...... 36 Кнопки в палитре 102
Значения, разделенные запятыми 39 Контекстное меню для палитры блоков 102
Многомерные списки и JSON 40 Контекстное меню для фона палитры 103
Палитра Resizing 103
V. Типизированные Входы ................................................ ....... 41
C. Scripting Площадь ............................................... .......... 104
A. SCRATCH Тип Notation ............................................... ..... 41 Sprite Внешний вид и поведение управления 104
B. Щелчок! Тип входа Dialog ............................................. 41 Сценарии Вкладка Area 104
Процедурные типы 42 Сценарии и блоки в скриптах 104
Pulldown входы 43 Scripting Область фона Контекстное меню 106
Входные варианты 45 Элементы управления в костюмах Tab 107
Прототип подсказки 46 Редактор Paint 109
Название Текст и символы 46 Элементы управления на вкладке Звуки 110
D. Клавиатура Редактирование ................................................ ........... 111
VI. Процедуры, как данные ............................................ 47
Запуск и остановка редактора клавиатуры 111
A. Вызов и Run ............................................... .................... 47 Перемещение в редакторе клавиатуры 111
Вызов / Run с входами 47 Редактирование сценария 112
Переменные в щелях кольца 48 Запуск выбранного сценария 113
B. Процедуры Написание более высокого порядка ....................................... 48 E. Элементы управления на рабочей .............................................. ........ 113
Рекурсивные вызовы с множеством входов блоков 50 F. Спрайте Corral и спрайтов Создание кнопки ................... 115
C. Формальные параметры ................................................ ........... 51 ГРАММ.Предзагрузка в проект при запуске Щелчок! ........................... 115
D. Процедуры, как данные ............................................... ............ 52 ЧАС. Зеркальные Сайты ................................................ .................. 116
E. Специальные формы ................................................ .................. 53 Показатель ……………………………………………………. 116
Специальные формы в пустом месте 54

2
Подтверждения

Мы были очень повезло в наших наставников. Jens сократить свои зубы в компании пионеров Smalltalk: Алан Кэй, Дэн Ingalls, а остальные

банды, которые изобрели персональные компьютеры и объектно-ориентированное программирование в великие дни Xerox PARC. Он работал с

Джоном Мэлони, разговорной команды MIT, который разработал графическую основу морфической, что по-прежнему в центре Щелчок!.

Блестящая дизайн нуля, из всей жизни группы детского сада в лаборатории MIT Media Lab, имеет решающее значение для

Щелчок!. Наша ранняя версия, BYOB, была прямой модификацией исходного кода Царапины. Щелчок! полностью переписан, но его структура кода и
его пользовательский интерфейс по-прежнему глубоко обязанным нуля. И Царапины команды, которые могли бы видеть нас в качестве конкурентов,

были полностью поддерживают и приветствуя нас.

Брайан вырос в MIT и Stanford Artificial Intelligence Labs, учась Lisp изобретателя Джона Маккарти, схема изобретателей Джеральда
Дж Зуссмана и Гай Стил, и автор лучшей в мире компьютерной науки книги, Структура и интерпретация компьютерных программ, Hal
Абельсон и Джеральд Дж Сассмен с Джул Зуссман, среди многих других героев компьютерной науки.

В дни славы в MIT Логотип Lab, мы привыкли говорить, «Логотип является Lisp под видом BASIC.» Теперь, с его первых процедур класса,

лексической области и первого класса продолжений, Щелчок! это схема замаскированный нуля.

Два человека сделал такие огромные вклады в осуществление Щелчок! что мы официально объявили их члены команды: Майкл
Болл и Bernat Romagosa. Другие близкие сотрудники включают Джоан Гильен я Pelegay, кто внес свой вклад очень тщательно и мудр
анализ нерешенных вопросов, в том числе помощь в укрощении управления переводами на языках, кроме английского и Jadga Huegle,
коллега Jens в SAP, который энергично способствовал к онлайн-мини-курсы о Щелчок! и ведущий мастер-классы для детей и для
взрослых.

Нам повезло, чтобы узнать удивительную группу блестящей средней школы (!) И старшеклассников через царапину Advanced Темы
форума, некоторые из которых внесли свой вклад кода Щелчок!: Картик Чандра, Натан Динсмор, Коннор Хадсон, Ян Рейнольдс, и Дилан
Servilla. Гораздо больше способствовали идеи и отчеты альфа-тестирования ошибок. студенты UC Berkeley, которые уже предоставлены
код включают Michael Ball, Achal Дэйв. Кайл Hotchkiss, Иван Motyashov, и Юань Юань. Авторы переводов слишком много, чтобы
перечислить здесь, но они в «О ...» поле в Щелчок! сам.

Этот материал основан на работе, поддержанной частично Национальный научный фонд под грантами No.
1138596, 1143566 и 1441075; а частично MioSoft, Arduino.org, SAP и YC исследований. Любые мнения, выводы и заключения или рекомендации,

выраженные в этом материале, являются таковыми автора (ов) и не обязательно отражают точку зрения Национального научного фонда и других

источников финансирования.

3
! "# $! Справочное руководство

Версия 5.0

! "# $% ( ранее BYOB) является расширенным переопределением Scratc ч ( http://scratch.mit.edu ) т час на позволяет построить свой собственный блоки. Она

также имеет первую списки классов, первые Процедуры класса, первые спрайты класса, первые костюмы класса, первые звуки класса, и первые продолжения

класса. Эти дополнительные возможности делают его пригодным для серьезного введения в информатику для средней школы или студентов.

В этом руководстве мы иногда делаем ссылку на пустое место, например, объяснить, как некоторые! "# $% & Функция расширяет что-то знакомое в

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

«# $%, открыть окно браузера и подключения к http://snap.berkeley.edu/run. ! "# $% Веб-сайт сообщества в http://snap.berkeley.edu не является частью

объема данного руководства.

Я. Блоки, скрипты и спрайты

В этом разделе описывается! "# $% особенности, унаследованные от нуля; Опытные пользователи Скретча могут перейти к подразделу B.

! "# $% это язык программирования - это обозначение, в котором вы можете сказать компьютеру, что вы хотите, чтобы это сделать. В отличие от

большинства языков программирования, хотя! "# $% Является визуальный язык; вместо того, чтобы писать программы с помощью клавиатуры, то! "# $% программист

использует один и тот же интерфейс перетащить и падение знакомого для пользователей компьютеров. Старт "# $% Вы должны увидеть следующее

расположение областей в окне!.:

(Пропорции этих областей могут быть разными, в зависимости от размера и формы вашего окна браузера.) A! "# $% Программа состоит из одного или

нескольких скрипты, каждый из которых выполнен из блоки. Вот типичный сценарий:

4
Пять блоков, которые составляют этот сценарий имеет три различных цвета, соответствующие трем из восьми палитр в котором блоки могут
быть найдены. Область палитра в левом краю окна показывает одну палитру в то время, выбирается с восемью кнопками чуть выше области
палитры. В этом сценарии, золотые блоки из палитры управления; зеленый блок из палитры Pen; и синие блоки из палитры Motion. Сценарий
собран путем перетаскивания блоков из палитры в область сценариев в средней части окна. Блоки притягиваться друг к другу (отсюда и
название! "# $% для языка) при перетаскивании блока так, чтобы его отступы вблизи вкладки одного над ним:

Белая горизонтальная линия представляет собой сигнал, что если вы отпускаете зеленый блок, он будет выровнен в закладку золотых один.

Хет блоки и командные блоки


В верхней части сценария является шляпа блок, который показывает, когда сценарий должен быть выполнен. Имена Hat блок, как правило, начинаются со

слова « когда «; в квадрате рисования, например, на странице 4, скрипт должен быть запущен, когда зеленый флаг рядом с правым концом! "# $% И панель

инструментов кнопки. (The! "# $% панель инструментов является частью! "# $% окно, не то же самое, как браузера или операционной панели меню системы.)

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

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

напомнить вам об этом. 1

Остальные блоки в нашем примере сценария являются команда блоки. Каждая команда блок соответствует действию этого! "# $% уже

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

направлении, в котором стрелка указывает. Мы вскоре увидим, что там может быть больше, чем в одном шприце, и что каждый спрайт имеет свои

собственные сценарии. Кроме того, спрайт не должен выглядеть как наконечник стрелы, но может иметь любую картинку в качестве костюм. Форма переехать Блок

предназначен, чтобы напомнить вам о Лего ™ кирпича; сценарий представляет собой стек блоков. (Слово «блок» обозначает как графическую форму на

экране и процедуры, действие, что блок осуществляет.) Число 10 в переехать блок выше, называется вход к блоку. При нажатии на белый овал, вы можете

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

данные могут иметь не овальные формы, которые принимают другие, чем числа значений. Мы также увидим, что вы можете вычислить входные значения,

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

примерно на полпути вниз по палитре Motion имеет три входа.

1 Один из шляп блоков, общий «когда-нибудь» блок , немного отличается от других. Когда остановка
знак щелкнул, этот блок дольше не проверяет, является ли состояние в гексагональной слот ввода не является истинным, поэтому сценарий под ним не будет работать, пока какой-нибудь Другой Сценарий

в прогонах проекта (поскольку, например, щелкните зеленый флаг).

5
Большинство команд блоки имеют форму, что кирпич, но некоторые, как и повторение блок в примере сценария, являются С-образная форма.

Большинство C-образные блоки находятся в палитре управления. Слот внутри формы C представляет собой особый вид входного слота, который принимает скрипт

в качестве входного сигнала. В примере сценария, то повторение Блок имеет два входа: номер 4 и сценарий

С-образные блоки могут быть помещены в сценарий двумя способами. Если вы видите белую линию и отпустить, то блок будет вставлен в сценарий, как

любой командный блок:

Но если вы видите оранжевый ореол и отпустить, то блок будет заворачивать вокруг ореол блоков:

Ореол всегда будет простираться от позиции курсора до нижней части сценария:

Если вы хотите только некоторые из этих блоков, после обертывания вы можете захватить первый блок, который вы не хотите, укутав, тянуть его вниз, и

привязать его под C-образного блока.

Для «Х-образного» блоков с более чем одной С-образный пазом, только первый слот будет обернуть вокруг существующих блоков в сценарии, и только в том

случае, что С-образный паз пуст Перед обертыванием. (Вы можете заполнить другие слоты путем перетаскивания блоков в нужное гнездо.)

6
A. Спрайты и параллелизм

кнопка»
Чуть ниже стадии находится кнопка «новый спрайт» , Нажмите на
на кнопку,
кнопку, чтобы
чтобыдобавить
добавитьновый
новыйспрайт
спрайтв на
ГНАсцену.

новый спрайт будет появляться в случайном положении на сцене, со случайным цветом, но всегда перед справа. Каждый спрайт имеет свои

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

правом нижнем углу окна. Попробуйте положить один из следующих сценариев в области сценариев каждого спрайта:

При нажатии на зеленый флаг, вы должны увидеть один спрайт вращаться, а другой движется вперед и назад. Этот эксперимент показывает, каким

образом различные сценарии могут выполняться параллельно. Поворот и перемещение произойдет вместе. Параллелизм можно увидеть с

несколькими сценариями одного спрайта также. Попробуйте этот пример:

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

остановить программу, нажмите на красный знак стоп на правом конце панели инструментов.)

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

костюмы Вкладка над областью сценариев и нажмите кнопку краски , Краска редактор появившегося
объяснено на странице 109. Есть три способа импортировать костюм. Сначала выберите нужный спрайт в

спрайт загон. Затем, один из способов, это нажать на иконку файла в панели инструментов, а затем выберите « Костюмы ... "пункт меню. Вы увидите список

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

компьютере, это нажать на значок файла и выберите « Импорт… " пункт меню. Затем вы можете выбрать файл в любом формате изображения (PNG, JPEG и

т.д.) поддерживаются вашим браузером. Третий путь быстрее, если файл, который вы хотите виден на рабочем столе: Просто перетащите файл на "# $% окно.

В любом из этих случаев, область сценариев будет заменена чем-то вроде этого:

7
Чуть выше этой части окна представляет собой набор из трех вкладок: Сценарии, костюмы, и звуки. Вы увидите, что вкладка костюмы теперь

выбран. С этой точки зрения, спрайт гардероб, Вы можете выбрать, следует ли спрайт носить его Turtle костюм или его костюм Алонзо. (Алонзо,

то! "# $% талисман, назван в честь Алонзо Черч, математик, который изобрел идею процедур, как данные, наиболее важным способом, в

котором! "# $% отличается от нуля.) Вы можете дать спрайт как много костюмов, как вам нравится, а затем выбрать будет носить либо щелкнув

в его гардеробе или с помощью

или сценарии. (Каждый


блок в сценарии.

костюм имеет номер, а также имя. следующий костюм Блок выбирает следующий костюм по номеру; после того, как с наибольшим номером костюма

он переключается в костюм 1. Черепаха, костюм 0, никогда не выбрано Следующий костюм.) Костюм Черепаха является единственным, который

меняет цвет в соответствии с изменением цвета пера спрайта. Protip:

Protip: переключается на предыдущий костюм, упаковка как Следующий костюм.

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

файлы могут быть импортированы в любом формате (WAV, OGG, MP3 и т.д.), поддерживаемый вашим браузером. Два блока выполняет задачу

воспроизведения звуков. Если вы хотели бы сценарий для продолжения работы во время воспроизведения звука, использовать блок

звук воспроизводится, используйте блок , В отличие от этого, вы можете использовать


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

Inter-Sprite Связь с Broadcast


Ранее мы видели пример двух спрайтов, движущихся в то же время. В более интересной программе, хотя, спрайты на сцене будет Взаимодействовать чтобы

рассказать историю, играть в игры и т.д. Часто один спрайт будет сказать другой спрайт, чтобы запустить сценарий. Вот простой пример:

в блок,слово
блок, слово «
«кора» просто произвольное имя, я сделал. При нажатии кнопки
на нисходящей стрелке в этом входном слоте, один из вариантов (единственный выбор, первый раз) является « новый, », Который затем предложит

ввести имя для новой передачи. Когда этот блок запускается, выбранное сообщение отправлено

каждый спрайт, поэтому блок называется «широковещательный.» В этой программе, однако, только один спрайт имеет скрипт для запуска, когда это

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

идет на его следующий сказать не блокировать, пока не закончится скрипт собаки. Вот почему два спрайтов по очереди говорить, а не как говорить сразу.

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

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

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

блок запуска. Этап имеет свою собственную область сценариев. Его можно выбрать, нажав на иконку Stage слева от спрайта загон. В отличие от спрайта,

хотя, сцена не может двигаться. Вместо костюмов, он имеет фоны: фотографии, которые заполняют всю площадь этапа. Спрайты появляются перед

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

8
В разделе VII, «Объектно-ориентированное программирование с спрайтами,» вы увидите, как отправить сообщение на определенный спрайт с помощью сказать

и спросить блоки, а не все спрайты как широковещательный делает.

B. Вложенные Спрайты: Якорь и части

Иногда желательно, чтобы сделать своего рода «супер-спрайт», состоящий из частей, которые могут перемещаться вместе, но также может быть отдельно

сочлененный. Классическим примером является тело человека состоит из туловища, конечностей и головы. ! "# $% Позволяет один спрайт быть обозначен как якорь

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

спрайт на дисплее сцены (не спрайт загон значок!) желаемого якорь спрайт.

Sprite вложенности показан в спрайтов загоне иконками обоих якорей и деталей:

На этой иллюстрации, желательно, чтобы анимировать руку Алонзо в. (Рука была окрашена в зеленом цвете в этой картине, чтобы сделать отношения двух

спрайтов более четких, но в реальном проекте они будут такими же цветами, возможно.) Sprite, представляющее тело Алонзо, является якорем; Спрайт (2)

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

небольшое изображение якоря в его верхнем левом углу, а синхронный / флаг поворота оборванного в правом верхнем углу. В своей первоначальной,

синхронной настройке, как показано выше, это означает, что, когда якорь спрайтовый вращается, часть спрайты также вращаются, а также вращается вокруг

якоря. При нажатии, она изменяется с круговой стрелкой к прямой стрелкой, и указывает на то, что, когда якорь спрайтовая вращается, часть спрайтов

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

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

Вверху: поворачивая часть: зеленый руку. Внизу: поворот якоря, с рычагом синхронными (слева) и оборванный (справа).

C. Reporter Блоки и выражения

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

9
При перетаскивании репортера блок над входным слотом другого блока, белым «гало» появляется вокруг, что входной слот, аналогично белой линии,
которая появляется, когда щелкая командные блоки вместе:

Вот простой скрипт, который использует репортер блок:

Здесь Икс позиция репортер обеспечивает первый вход, к сказать блок. (Положение спрайта Х представляет собой его горизонтальное положение, как

далеко влево (отрицательные значения) или вправо (положительные значения) он сравнивается с центром сцены. Аналогичным образом, позиция Y

измеряется вертикально, с шагом выше (положительным) или ниже (отрицательный) центр) Вы можете сделать арифметическими с помощью репортеров

в палитре операторов.:

круглый блок раундов 35.3905 ... до 35, а + блок добавляет 100 к этому. (Между прочим, круглый блок в палитре операторов, как +, но в
данном сценарии это более светлый цвет с черными буквами, потому что "# $% чередует светлые и темные версии палитры цветов,
когда блок вложен в другой блок из тех же палитр:

Эта помощь читаемости называется зебры окраски.) Репортер блок с его входами, может быть, в том числе других репортерных блоков, такие как

блоки, такие как , Называется выражение.

10
D. Предикаты и условная оценка

либолибо
Большинство репортеров сообщают номер,
номер,как
как , или текстовая строка, нравится ,, сказуемое это
особый вид репортера, который всегда сообщает правда или ложный. Предикаты имеют шестиугольную форму:

Специальная форма является напоминанием о том, что предикаты вообще не имеет смысла во входной щели блоков, которые ожидают номера

ожидает
или номер
текст. Вы бы неили текст.
сказал, Вы бы не сказал, , хотя (как вы можете видеть из
! Фото) "# $% позволяет это сделать, если вы действительно хотите Вместо этого обычно используют предикаты в специальных шестигранных входных

слотов, как этот.:

С-образный если блок запускает свой входной скрипт, если (и только если) выражение в его гексагональных отчетах входных правда.

Действительно полезный блок в анимации запускает свой входной скрипт несколько раз до тех пор, пока предикат выполняется:

Если, работая над проектом, вы хотите исключить временно некоторые команды в сценарии, но вы не хотите, чтобы забыть, где они принадлежат, вы

можете сказать,

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

использовать репортер если блок:

Технический термин для правда или ложный Значение является «Boolean» значение; он имеет капитал B, потому что он назван в честь человека, Джорджа

Буля, который разработал математическую теорию значений булевых. Не запутаться; гексагональной блок представляет собой предикат, но значение он

сообщает является Boolean.

Другой каламбур о лексике: Многие языки программирования Оставляют «процедуру» имени для команд (которые осуществляют действия) и

использовать имя «функцию» для репортеров и предикатов. В этом руководстве, а процедура любая вычислительная мощность, в том числе и те, что

значения в отчете и те, которые этого не делают. Команды, репортеры, и Предикаты все процедуры. Слова «процедурный типа» являются

сокращением для «типа команд, типа Reporter, или типа сказуемого.» Если вы хотите, чтобы поставить постоянная Логическое значение в

гексагональной слот вместо выражения предиката на основе, наведите курсор на блок и нажмите на элементе управления, который появляется:

11
E. переменные

Попробуйте этот скрипт:

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

Оранжевый овал является переменная: символ, который представляет собой значение. (Я взял этот скриншот перед изменением второго ввода числа в за блок

от значения по умолчанию 10 до 200, и перед перетаскиванием в а перемена Блок.) За запускает свой входной скрипт повторно, так же, как повторение, но

перед каждым повторением она устанавливает переменную я к числу начиная с его первым числовым вводом, добавив 1 для каждого повторения, пока он не

достигнет второго числового ввода. В этом случае, будет 200 повторений, первый с я = 1, то с я = 2, а затем 3, и так далее до я = 200 для окончательного

повторения. Результатом является то, что каждая переехать рисует длиннее и длиннее отрезок линии, и поэтому изображение, которое вы видите вид

спирали. (Если вы снова попробовать с поворотом на 90 градусов, а не 92, вы поймете, почему эта картина называется «squiral.») Переменная я создается за блок,

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

без перетаскивания его, которая выскочит диалоговое окно, в котором можно ввести другое имя:

« я »Не очень описательное имя; Вы могли бы предпочесть « длина », Чтобы указать его назначение в сценарии. « я »Является традиционным, так как

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

имена переменных односимвольных.)

12
Глобальные переменные
Вы можете создавать переменные «вручную», которые не ограничиваются используется в пределах одного блока. В верхней части палитры Variables,
нажмите кнопку « Сделать переменную Кнопка»:

Появится диалоговое окно, в котором вы можете дать вашему имя переменной а:

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

текущем спрайта. Вы бы сделать, если вы собираетесь дать несколько спрайтов отдельных переменных с тем же именем, так что вы можете поделиться

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

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

вы передаете переменное имя « имя »Тогда палитра переменной будет выглядеть следующим образом:

Там сейчас « Удалить переменную »Кнопку, и есть оранжевый овал с именем переменной в нем, так же, как оранжевый овал в за блок. Вы можете

перетащить переменную в любом сценарии в области сценариев. Рядом с овал флажок, сначала проверяется. Когда флажок установлен, вы также

увидите переменная наблюдающий на сцене:

13
Когда вы даете переменное значение, оранжевый ящик в его наблюдателе будет отображать значение. Как делать вы даете

ему значение? Вы использовать устанавливать блок:

Обратите внимание, что вы не перетащить овал переменной в устанавливать блок! Вы нажимаете на DownArrow в первый слот ввода, и вы получите

меню всех доступных имен переменных.

Если вы выбираете «Для этого спрайта только» при создании переменной, ее блок в палитре выглядит следующим образом:

место расположения- значок булавки немного каламбура на sprite- местный переменная. Это проявляется только в палитре.

Переменный сценарий

В приведенном примере имя выше, наш проект будет продолжать взаимодействие с пользователем, и мы хотим, чтобы вспомнить свое имя на протяжении

всего проекта. Это хороший пример ситуации, в которой Глобальный Переменная (вид вы делаете с « Сделать переменную Кнопка») подходит. Другим

распространенным примером является переменная с именем « Гол »В игровом проекте. Но иногда вам нужно только переменный временно, во время

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

Как в за блок, вы можете нажать на оранжевом овале в переменные сценария блок без перетаскивания, чтобы изменить свое название. Вы также можете

сделать больше, чем одну временную переменную, нажав на правую стрелку в конце блока, чтобы добавить еще одну переменную овал:

Переименование переменных

Есть несколько причин, почему вы можете захотеть изменить имя переменной:

1. Это имя по умолчанию, такие как « a " в переменные сценария или " я " в за.

2. Он конфликтует с другим именем, например, как глобальная переменная, что вы хотите использовать в том же сценарии.

3. Вы просто решить, другое название будет более самодокументирован.

В первом и третьем случае, вы, вероятно, хотите, чтобы изменить имя везде появляется в этом сценарии, или даже во всех сценариях. Во втором случае,

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

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

переменному овалу.

14
Если щелкнуть правой кнопкой мыши на оранжевом овале в контексте, в котором переменная используемый, то вы можете переименовать только что один

апельсин овал:

Если щелкнуть правой кнопкой мыши на том месте, где переменная определены ( переменные сценария блок, оранжевый овал для глобальной переменной

в переменных палитре, или оранжевый овал, который встроен в блок, такие как « я " в за), то вы получаете два варианта переименования, «переименовать» и

«переименовать все.» Если вы выбираете «переименовать», то имя изменено только в том, что один оранжевый овал, как и в предыдущем случае:

Но если вы выбираете «переименовать все», то название будет изменено по всей видимости переменной (сценарий для переменной сценария, или

везде для глобальной переменной):

Переходные переменные

До сих пор мы говорили о переменных с числовыми значениями, или с короткими текстовыми строками, такими как чье-то имя. Но нет никаких ограничений на

количество информации, которую можно поместить в переменную; в главе IV вы увидите, как использовать списки

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

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

невозможным сохранить проект. (Дополнительное пространство для перекодировки из!» # $% «S внутреннее представление в том виде, в котором проекты

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

дальше, вы можете иметь значение, содержащее большое количество данных, удаленные из памяти перед сохранением проекта. Чтобы сделать это,

щелкните правую кнопку мыши или кнопку мыши на оранжевом овале в переменной палитре, чтобы увидеть это меню:

Вы уже знаете о возможностях переименования, и Помогите… отображает экран помощи о переменных в целом. Здесь мы заинтересованы в флажке

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

когда ваш проект загружен, он воссоздает необходимое значение и устанавливает переменную к нему.

15
F. Отладка

! "# $% предоставляет несколько инструментов для отладки программы. Они сосредотачиваются вокруг идеи пауза бегущие из сценария на полпути, так

что вы можете проверить значения переменных.

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

переменной Переменные палитры или с показать переменную блок, и делать все другие вещи, которые вы можете ген ралли делать, в том числе

модификации остановленных скриптов путем добавления или удаления блоков. Кнопка меняет форму

Кнопка меняет форму и нажав снова возобновляет остановленные скрипты.

Breakpoints: пауза аль л блок


Кнопка паузы является большим, если ваша программа, кажется, в бесконечном цикле, но чаще вы хотите установить

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

определенном блоке, можно использовать приостановить все как раз перед тем, что блок, чтобы посмотреть значения переменных непосредственно перед

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

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

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

переменный отрицательна, который не должен когда-нибудь случится. В библиотеке итерации (смотрите страницу 23 для подробной информации о том, как

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

соответствующие переменные перед паузой. Вот пример использования этого:

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

паузы), наблюдатели временные переменные удаляются с помощью этой точки останова блока перед возобновлением сценария. Блок точек останова не

магия; вы могли бы в качестве альтернативы просто положить приостановить все внутри если. 1

1 переменная скрыть и показать переменную блоки также могут быть использованы для скрытия и отображения примитивов в палитре. Выпадающее меню не включает в себя примитивные блоки,

но есть вообще полезный метод, чтобы дать входной блок значения не Ожидал с помощью бегать или вызов:

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

VI. ,

16