Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №18/2008


Предлагаю коллегам

Среда Scratch - первое знакомство

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

Предлагаемая вашему вниманию статья преследует цель продемонстрировать широкой аудитории наиболее яркие возможности Scratch. В ней во многом описаны собственные впечатления автора от знакомства со средой, которые не могут не быть субъективными. В то же время, делается попытка как-то систематизировать эти впечатления, “проектируя” их на уже имеющийся опыт преподавания программирования. Хотелось бы обратить внимание читателей и на этот аспект статьи.

Материал разбит на несколько небольших разделов. По моим представлениям, такой вариант — четкое описание наиболее характерных моментов — является для введения в предмет наиболее подходящим. Хотя у такой манеры описания неизбежна некоторая фрагментарность, но, если не претендовать на роль систематического изложения, этот недостаток не так страшен.

Помимо описательной части, статья содержит небольшой набор оригинальных проектов для Scratch: по мнению автора, осваивавшего на этих примерах новую среду, они довольно многогранно отражают ее возможности. Каждый проект объясняет какую-либо одну выделенную технологию работы, хотя в реальных проектах они вполне могут потребоваться все вместе.

Примечание (филологическое). В статье везде используется английское название среды — Scratch. Такой подход мотивирован тем, что данный термин, как и множество других английских слов, пишется и читается по-разному (есть даже такая шутка, что англичане пишут Манчестер, а читают Ливерпуль). Хотя при “русификации” терминов наиболее дальновидно, по-видимому, пользоваться вариантом, который максимально близок по произношению (в данном случае это нечто вроде скрэч, поскольку используется весьма специфический гласный звук, а буква t при чтении не выделяется), но едва ли такой вариант у нас “приживется”. Именно поэтому, не желая бежать “впереди паровоза”, автору хочется подождать, пока сформируется общепринятый русский эквивалент, а пока воспользоваться английским написанием. К тому же и при поисках в Интернете полезнее знать именно английский вариант.

Общие сведения о Scratch

Scratch создан под руководством профессора Митчелла Резника (Mitchel Resnick) в исследовательской группе под названием Lifelong Kindergarten research group, которая существует при Массачусетсском технологическом институте (MIT). Предыдущей весьма известной разработкой этой группы являлась популярная серия LEGO Mindstorms, которая представляет собой комплект деталей для сборки программируемых роботов.

Работа велась в содружестве с исследователями Университета Лос-Анджелеса (UCLAUniversity of California, Los Angeles) при финансовой поддержке Национального научного фонда и Фонда корпорации Intel.

По поводу целей проекта Митчелл Резник сказал [1]: “Это следующий шаг в генерации контента (материалов) пользователем. Нашей целью было расширить диапазон того, что дети могут создавать, совместно использовать и изучать. Работая над проектом в Scratch, дети учатся думать креативно (созидательно) и решать проблемы систематично — а это умения, которые являются критическими для достижения успеха в XXI веке”.

Scratch базируется на вершине языка Squeak, черпая вдохновение в Squeak E-toys и Лого. Это объектно-ориентированная среда, в которой блоки программ собираются из разноцветных кирпичиков команд точно так же, как машины или другие объекты собираются из разноцветных кирпичиков в конструкторах Лего. Кроме того, в нем можно найти современные идеи из сред визуального программирования типа Delphi и даже из презентационных систем. Именно поэтому кратко определить “жанр” Scratch весьма сложно — мы посвятим этому отдельный раздел.

Scratch разрабатывался как новая учебная среда для обучения школьников программированию и позиционировался авторами как альтернатива культуре PhotoShop. В нем можно легко создавать фильмы, игры, анимированные открытки и презентации; придумывать и реализовывать различные объекты, определять, как они выглядят в разных условиях, перемещать по экрану, устанавливать способы взаимодействия между объектами. Дети могут сочинять истории, рисовать и оживлять на экране придуманных ими персонажей, учиться работать с графикой и звуком. Важно и то, что ребенок имеет возможность поделиться результатами своего творчества с друзьями или другими пользователями: кнопка для размещения созданного проекта в Сети находится непосредственно в программе. Разумеется, на сайте можно также познакомиться с произведениями других пользователей и найти новые идеи для своих работ. Таким образом, ребята могут поделиться своими интерактивными разработками в Scratch аналогично тому, как это делается при “публикации” видео на популярном сайте YouTube.

Scratch как программный продукт имеет несколько нестандартный статус: с открытым кодом (open-source), но закрытый для разработки (closed-development), т.е. он разрабатывается небольшой группой исследователей MIT Media Lab. Программное обеспечение полностью бесплатно, и любой желающий может закачать с сайта его версии для Windows и Mac OS; версия для Linux обещана в ближайшем будущем.

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

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

В рекламных материалах сайта Scratch [2] образно сказано, что система предлагает низкий пол (легко начать работу), высокий потолок (возможность создать сложные проекты) и широкие стены (поддержка широкого разнообразия проектов).

Те, кто захочет почитать материалы по Scratch на русском языке, могут обратиться к хорошо известному в России сайту [3].

Что значит название “Scratch”?

Термин “Scratch” пришел из технологий, используемых диск-жокеями стиля хип-хоп, которые мастерски крутили виниловые пластинки, смешивая музыкальные фрагменты некоторыми творческими способами [1]. Аналогично Scratch позволяет детям смешивать графику, фотографии, музыку и звуки. Такое смешение порождает целый калейдоскоп проектов: от школы полярных медведей до звездных войн и исполнения брейк-данса [2].

В переводе с английского scratch имеет множество разнообразных значений: “каракули, скрип, царапанье, насечка, метка, стартовая черта” — и целый ряд других. Глагол to scratch, помимо ожидаемого “царапать” и “скрести”, дополнительно имеет варианты перевода “рыть когтями” и “нацарапать письмо или рисунок”. Являясь частью выражений, это слово часто переводится как “случайно, наспех, на скорую руку, используемый для черновиков или набросков”. Все это — scratch. Очень хорошо подходит к этому ряду выражение “start from scratch” — начать с нуля. Вероятно, поскольку царапанье кошек тоже scratch, символом программы служит веселый кот.

Что такое Scratch?

Как уже отмечалось выше, трудно одной-двумя фразами определить, что есть ПО под названием “Scratch”. Попробуем выяснить это подробнее.

Прежде всего Scratch называют языком программирования, и это, без сомнения, так. Традиционные базовые конструкции программирования типа IF / ELSE и несколько версий цикла REPEAT (и даже весьма странная с точки зрения теории программирования конструкция FOREVER — повторять навсегда) в нем представлены, также можно создавать числовые переменные и программировать простейшие выражения. Остальная часть языка направлена на реализацию манипуляций с мультимедиа. Имеются практически все возможности языка Лого, за исключением одной, но очень важной: нет механизма организации процедур. С моей точки зрения, это серьезный “минус”, когда в результате чрезмерной оптимизации “выплеснули с водой ребенка”. Вообще Scratch все-таки следует назвать упрощенным и не очень строгим по построению языком программирования, специализированным на обработке простых видов мультимедийной информации.

Кроме того, Scratch часто называют объектно-ориентированным языком, мотивируя это тем, что он оперирует с мультимедийными объектами, главным образом визуальными. Данный тезис не вполне справедлив в строгом смысле ООП: сомнительно, что не имеющий механизмов наследования (нет описаний объектов) и полиморфизма (нет процедур с именем) можно назвать по-настоящему объектным.

Примечание. Во многом похожая ситуация, кстати, имеет место при изучении сред визуального программирования, например, Delphi. Разговор о “настоящем” ООП при обучении во многих случаях подменяется обсуждением библиотеки визуальных компонентов: кнопок, флажков и т.п.

А вот что почему-то не было отмечено в качестве достоинств языка (по крайней мере ни в одной из статей, прочитанных мною при подготовке данной публикации), так это глубокое внедрение в Scratch идей обработки событий и обмена сообщениями. В самом деле, переход от единой программы, заключенной между BEGIN / END или их аналогами в классических языках программирования, к совокупности обработчиков в современных визуальных средах есть одно из существенных революционных изменений в стиле написания программ. В Scratch все законченные программные блоки есть обработчики событий (реакция на нажатия клавиш, щелчок по спрайту и некоторые другие). Даже пуск проекта оформляется именно как процедура, запускаемая по щелчку кнопки со стартовым зеленым флажком. Говоря о второй особенности, отметим, что спрайты способны обмениваться сообщениями и реагировать на них. Указанные особенности языка Scratch, безусловно, заслуживают, чтобы их выделили в качестве существенного достоинства.

Но Scratch — это не просто язык программирования. Это еще и интерактивная среда, построенная на интуитивно понятных ребенку принципах. Принципиальной новизной системы является идея о сборке программы мышкой из готовых блоков (их еще называют “кирпичиками”) подобно тому, как дети строят домики и машинки из деталей “Лего” (см. рисунки к разбираемым в статье примерам). Подобный способ набора (сборки?) программ исключает проблемы синтаксиса, что для младших школьников существенно.

Scratch — это мультимедийная система. Большая часть операторов языка направлена на работу с графикой и звуком, создание анимационных и видеоэффектов. Манипуляции с медиаинформацией — главная цель создания Scratch.

Особо подчеркивают коммуникативную сторону Scratch. Среда предполагает коллективную работу над проектами, а также обмен результатами через сайт Scratch-сообщества [2]. Сообщество носит открытый характер, любой желающий может посмотреть и скачать все его материалы. Не пожалейте времени и посетите указанный сайт — посмотрите результаты детских работ; почти уверен, что каждый сумеет найти среди 78793 проектов и 1485243 скриптов от 14 926 авторов (данные на февраль 2008 г.) что-нибудь интересное именно вам. Кстати говоря, чтобы отослать законченный проект на сайт, достаточно нажать кнопку Share (разделить, поделиться, совместно использовать) и заполнить небольшую форму, которая нужна для правильной классификации проекта. В одной из статей подчеркивалось, что проект можно поместить не только на официальный Scratch-сайт. С помощью специализированного Java-аплета можно проигрывать любой файл без системы Scratch, а значит, включать его в состав любой web-странички.

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

Познакомимся с командами Scratch

Как и в любом другом языке, программа (в Scratch ее часто называют скрипт или, точнее говоря, скрипты, поскольку программа может содержать их несколько) состоит из отдельных команд. Каждая команда изображается в виде графического блока (“кирпичика”).

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

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

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

Всего на данный момент выделено 8 страниц с командами. Их краткие характеристики сведены в таблицу, приведенную ниже. Полный список команд можно найти в документации к Scratch [4] (на английском языке) или на сайте [3] уже по-русски.

Примечание. Файл документации называется ScratchReference.pdf, он находится в каталоге Help. Он может вызываться непосредственно из самой программы (cм. таблицу).

Приведем несколько примеров.

Команда move (10) steps смещает спрайт на 10 пикселей в том направлении, “куда он смотрит”, а turn (15) degrees поворачивает его на указанный угол в указанном на “кирпичике” направлении. Next costume переключает изображение (вид) спрайта: отображается следующее или первое, если заготовленные образы закончились. Для проигрывания звукового файла с именем meow предусмотрена команда play sound [meow]. Несколько необычная команда forever организует бесконечный цикл. Команда mouse x возвращает значение указателя мыши по оси x и т.д.

Блоки могут содержать внутри себя параметры, как, например, в команде move (10) steps. Входящие в команду значения вписываются с клавиатуры или выбираются из выпадающего списка (см. рис. 1.2 на с. 22).

В Scratch существует 3 вида блоков (см. рис. 1).

а) Основная масса блоков может “ставиться друг на друга”, образуя “столбик” (“стопку”). Их называют Stack blocks. Некоторые управляющие блоки (например, циклы) имеют вид буквы “С” — они охватывают входящие в них блоки, расширяясь на требуемую величину.

b) Некоторые управляющие блоки (например, when Sprite1 clicked) могут быть только сверху стопки: по смыслу это заголовки обработчиков событий (Hats).

c) Наконец, последняя группа блоков служит индикатором тех или иных величин (например, x position): в них отображаются текущие значения величин, что удобно для контроля и отладки. Последний вид блоков называют Reporters.

Рис. 1. Виды блоков

Нужные команды перетаскиваются в поле программы. Близко располагающиеся команды сочленяются в блоки (см. рис. 1.3 и 1.5 на с. 23). Блок перемещается за самую верхнюю команду. Двойной щелчок по оператору или блоку вызывает его немедленное исполнение.

Интерфейс программы

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

После запуска программы экран имеет вид, показанный на рис. 2 (зоны экрана выделены и подписаны после снятия копии экрана в графическом редакторе).

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

Чтобы на сцене что-нибудь происходило, необходимо создать спрайты, т.е. визуальные динамические объекты; кнопки создания новых спрайтов обозначены на рисунке цифрой 8. Все, что мы создали, отображается на листе спрайтов (ниже сцены), где можно выбрать один из спрайтов для настройки. При этом информация о текущем спрайте отображается в средней части экрана. Там мы видим поле для скриптов, описывающих поведение данного спрайта. Верхняя часть поля содержит закладки (обозначены цифрой 3), с помощью которых можно от просмотра скриптов перейти к просмотру возможных видов (рисунков) спрайта (Costumes) и связанных с данным спрайтом звуков (Sounds). Краткая информация о выбранном спрайте: имя, текущий образ, координаты и т.д. — отображается выше (см. цифру 2). В этой же области находится кнопка Export, позволяющая сохранить спрайт в виде отдельного файла.

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

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

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

Практически все управление системой сосредоточено в верхней части экрана. Главное меню выполнено в виде горизонтального ряда кнопок. Кроме них отдельно выделены кнопки переключения режима поворота спрайтов (на рисунке обозначены цифрой 1; подробнее об их назначении можно прочесть в описании проекта 1), панель инструментов 4, а также кнопки запуска и остановки скриптов 6.

В правом верхнем углу (5) индицируется информация о прочитанном проекте. Подчеркнем, что до тех пор, пока вы не сохранили свой новый проект первый раз, система “проявляет к нему непростительное равнодушие”: например, при выходе не предлагает выполнить сохранение.

Итак, что надо сделать, чтобы создать собственный проект? Во-первых, конечно, продумать его и выяснить, что потребуется, подобрать файлы с картинками и, возможно, звуками. Затем, удалив “рекламного” кота (автоматически генерируемый спрайт под номером 1), нужно создать требуемое число спрайтов и присоединить к ним подобранные рисунки и звуки. Наконец, пользуясь палитрой блоков и мышью, собрать необходимые скрипты и отладить их.

Разумеется, приведенная последовательность является лишь примерной; она описана с целью показать основные компоненты проекта. При работе над реальным проектом вы можете поступать, как диктует ваше творческое воображение. Вполне реальной схемой является сначала создать и отладить скрипты для двух-трех главных спрайтов, обеспечив их требуемое поведение, а затем заняться деталями графического и музыкального оформления. В то же время, если вам удобнее “гонять” спрайты на фоне определенного рисунка, система сумеет нормально обеспечить и такую последовательность действий. В общем, как и положено настоящему творчеству, у него нет четкого алгоритма.

Цитируемые источники

1. Schorow S. Interactive ‘Scratch’ program empowers young media artists. MIT Tech Talk, vol. 51, № 27 (May 16, 2007), p. 7.

2. Официальная страница Scratch. http://scratch.mit.edu.

3. Летописи.Ру. http://letopisi.ru/index.php/Скретч.

4. Scratch Reference Guide (входит в комплект программы).

Примеры проектов

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

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

Проекты разделены на две группы. Группа A — это простейшие проекты, позволяющие освоить основные приемы работы в среде. Сами по себе они не имеют практического применения. Напротив, проекты группы B могут быть использованы на практике, зато их реализация потребует гораздо больших усилий.

ДЕМОНСТРАЦИОННЫЕ ПРОЕКТЫ (ГРУППА А)

Проект 1. “Гоняем кота”

В качестве первого шага обычно делают что-то простое и эффектное. Мне захотелось начать с перемещения спрайта (визуального объекта) с помощью клавиш управления курсором. Проект действительно удалось осуществить “за пять минут”, причем на чисто интуитивном уровне без чтения помощи или документации. Справедливости ради следует сказать, что понимание сути обработки событий в визуальных средах вроде Delphi, вероятно, помогало.

По умолчанию Scratch автоматически создает первый спрайт, имеющий вид забавного кота. Мы пока не будем его изменять, а займемся управлением — “погоняем” по экрану.

На странице операторов Control (цвет желтый) найдем событие when (space) key pressed (реакция на нажатие клавиши, по умолчанию это пробел). Перетащим этот заголовок обработчика событий мышкой в нашу программу (скрипт) — см. рис. 1.1 на с. 22.

По умолчанию обработчик настроен на клавишу пробел, а нам требуются клавиши управления курсором, например, для начала “стрелка влево”. Нажав на общепринятый значок выпадающего списка — перевернутый треугольник, выберем из длинного перечня клавиш нужную, которая, “как нетрудно догадаться”, называется left arrow (рис. 1.2).

Итак, заголовок обработчика сформирован, перейдем к построению его содержимого. Обдумаем, что он должен делать. Во-первых, двигающийся влево кот должен смотреть в направлении, в котором шагает, поэтому начнем с того, что повернем кота налево. Для этого на странице операторов Motion (цвет голубой) отыщем и добавим к скрипту команду point in direction (90), что означает по смыслу смотреть в направлении 90 градусов, т.е. по умолчанию вправо (рис. 1.3).

Аналогично предыдущему, выбираем из списка вариант –90 (минус 90!) градусов, т.е. смотреть влево.

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

Наконец, попросим кота сместиться в том направлении, куда он смотрит. Для этого подтащим и пристыкуем с этой же страницы команду move (10) steps, что означает сдвинуться на 10 шагов, или, правильнее выражаясь, пикселей. Надеюсь, вам удалось выполнить это действие так же легко, как и предыдущее.

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

Вы, возможно, не поверите, но наш первый скрипт уже готов! Более того, он даже работает! Нажмите клавишу со стрелкой влево и убедитесь, что кот ее слушается. Пусть вас не пугает, что он идет вниз головой, немного позднее мы легко исправим эту “странность”.

Если вы, воодушевленные первым успехом, тут же начали перетаскивать “кубики” операторов для трех оставшихся клавиш со стрелками, то пока повремените, так как все можно сделать значительно проще; собранный обработчик можно просто размножить. Для этого щелкнем правой кнопкой мыши на самом верхнем операторе (обязательно там!) и во всплывающем меню выберем пункт duplicate — рис. 1.4.

Появившийся дубликат программы немедленно перетащим на свободное место и расположим так, чтобы наши эстетические чувства были удовлетворены. Остается перенастроить направление стрелки в заголовке и направление в операторе point. Например, для стрелки вправо (right arrow) следует установить значение 90 градусов.

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

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

Рис. 1.1. Помещаем в программу первый оператор

Рис. 1.2. Выбираем нужную клавишу

Рис. 1.3. “Пристыковываем” еще один оператор

Рис. 1.4. Копируем скрипт

Рис. 1.5. Итоговый проект из пяти скриптов

Рис. 1.6. Проект стартует

Рис. 1.7. Кот идет влево

Рис. 1.8. Встроенный графический редактор

Примечание. Видимый на экране спрайт в процессе работы над проектом можно просто переместить мышкой!

Для инициализации состояния спрайта подключимся к обработчику стартовой кнопки с рисунком зеленого флажка. Соответствующий заголовок найдем на странице операторов Control (цвет желтый). В обработчик включим две команды со страницы Motion (цвет голубой): go to x: (0) y: (0), что означает вернуть спрайт в точку с координатами (0,0), т.е. в центре экрана, и уже знакомую нам point in direction (90). В качестве красивого и бесполезного “бантика” со страницы операторов Looks (цвет фиолетовый) добавим еще инструкцию say [Hello] for (2) secs; знатоки английского поняли, что кот будет нам говорить “Hello” (или любой другой текст, который вы наберете, — лишь бы в нем не было русских букв!) в течение двух секунд. Итоговая программа проекта изображена на рис. 1.5. Ее, наверное, стоит сохранить на диске.

Момент инициализации спрайта изображен на рис. 1.6, а рабочий момент движения кота влево — на рис. 1.7. Добавим только, что Scratch-система обводит исполняемый фрагмент программы белой толстой линией, что весьма удобно для наблюдения работы скриптов.

Что еще можно попробовать? Могу посоветовать произвести следующие действия.

1. Просмотрим полученный проект на чистом экране (без программного окружения). Для этого в правой нижней части найдем кнопку (кнопка 7 на рис. 2) и нажмем.

2. “Запретим” коту гулять вверх ногами. За это отвечают 3 кнопки, расположенные над программой (для поиска удобно воспользоваться рис. 1.4). При нажатии на спрайт перестанет переворачиваться. Опробуйте и запомните действие остальных кнопок (вращать, только лево-право, не менять).

 

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

3. Воспользуемся тем фактом, что у спрайта есть 2 вида (в Scratch они называются Costumes — см. соответствующую вкладку под скриптами). Видно, что у нашего кота есть 2 рисунка, изображающие фазы движения. Если добавить к каждому из 4 обработчиков оператор next costume из страницы операторов Looks (цвет фиолетовый), то кот начнет при движении смешно передвигать лапками. Более подробно организацией анимации мы займемся в следующем проекте.

4. Добавьте проигрывание присоединенного к спрайту звука “мяу” (см. следующую вкладку Sounds) с помощью оператора play sound [meow], который вы найдете на странице операторов Sound (цвет розовый).

5. Попробуйте изменить смещение в операторах move (10) steps. Подберите оптимальное с вашей точки зрения значение.

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

Указание. Воспользуйтесь циклом repeat и задержкой wait (0.5) secs на странице Control (цвет желтый, задержка по умолчанию 1 с заменяется на нужную).

7. Испытайте оператор if on edge bounce (страница Motion, цвет синий), который автоматически реализует отражение спрайта при достижении границы экрана.

8. Замените изображение кота каким-либо другим. Для этого откройте вкладку Costumes, возле изображения Costume1 найдите кнопку edit и нажмите ее. В появившемся окне графического редактора (рис. 1.8) нажмите кнопку очистки Clear (справа вверху), а затем импортируйте новую картинку клавишей Import (слева вверху). Можете подрисовать что-нибудь сами.

9. Найдите в прилагающихся рисунках похожий проект — бегающего муравья. Для этого запустите Scratch, удалите спрайт кота, а затем кнопкой (см. цифру 8 на рис. 2) откройте библиотеку изображений. В разделе Animals найдите и загрузите спрайт муравья (Running Ant с подписью “5 скриптов”). Разберитесь, как он устроен и чем отличается от нашего проекта.

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

Окончание читайте в следующем номере

Е.. А.. Еремин,
г. Пермь

TopList