Содержание
Предисловие, или Что такое Скретч?
1. Знакомство со средой Скретч
2. Мастерская художника
3. Управление спрайтами
4. Навигация в среде Скретч
5. Проект "Кругосветное путешествие Магеллана"
6. Учимся использовать повторы
7. Создаём "вечный двигатель"
8. Учимся ориентироваться по компасу
9. "Оживляем" спрайты
10. Соблюдение условий
11. Управляемы спрайты
12. Сложные условия
13. Случайность по заказу
14. Другие возможности запуска спрайтов
15. Самоуправление спрайтов
16. Вернёмся к старым проектам
17. Датчики
18. Переменные
19. Создаём новые команды
20. Ввод переменных
21. Рычажок
22. Списки
23. Фантомные объекты
24. Клонирование
25. Вносим в клоны индивидуальность
26. Проект "Подводная охота"
27. Создание мультфильмов
Заключение
Текст
                    [ ШКОЛА ЮНОГО ПРОГРАММИСТА^^
Ю. В. Пашковская
ПРОГРАММИРОВАНИЕ
на SCRATCH
. Лаборатория
\|Р ЗНАНИИ
УРОВЕНЬ 1

* ШКОЛА ЮНОГО ПРОГРАММИСТАМ Ю. В. Пашковская ПРОГРАММИРОВАНИЕ на SCRATCH ДНЯ ДЕТЕЙ УРОВЕНЬ 1 Москва Лаборатория знаний
УДК 004.9 ББК 32.97 П22 Серия основана в 2018 г. Пашковская Ю. В. П22 Программирование на Scratch для детей. Уро- вень 1 / Ю. В. Пашковская. — М. : Лаборатория знаний, 2024. — 224 с. : ил. — (Школа юного программиста). ISBN 978-5-93208-375-8 В данном пособии дети смогут познакомиться с основами программирования в среде Scratch (Скретч). Особенность этой среды заключается в том, что программированию обучаются играя. В Скретче можно сочинять истории, рисовать, ожив- лять придуманные персонажи, создавать презентации и игры. В книге содержится множество проектных заданий, при этом задания на компьютере чередуются с чтением и выполнением заданий в письменном виде. Все задания носят творческий характер, что позволит де- тям развивать знания об алгоритмах, полученные в начальной школе в предметной области * Математика и информатика*, а также овладевать инструментами программирования в среде Скретч и применять эти знания и умения при выполнении проектных заданий из других предметных областей. Книга предназначена для дополнительного образования в школе и дома. Она будет полезна как руководителям кружков, так и родителям юных программистов. УДК 004.9 ББК 32.97 6+ Издание для дополнительного образования Серия: «Школа юного программиста» Пашковская Юлия Вадимовна ПРОГРАММИРОВАНИЕ НА SCRATCH ДЛЯ ДЕТЕЙ. УРОВЕНЬ 1 Ведущий редактор Ю. А. Серова Технический редактор Т. Ю, Федорова, Корректор И, Н, Панкова Компьютерная верстка: Е. Г. Ивлева Подписано в печать 14.09.23. Формат 70x100/16. Усл.печ.л. 18.2. Заказ № B3K-03907-23. Издательство «Лаборатория знаний» 125167, Москва, проезд Аэропорта, д. 3 Телефон: (499)157-5272 e-mail: info@pl 1 о t LZ.гu, http://www.pilotLZ.ru Отпечатано в АО «Первая Образцовая типография», филиал «Дом печати —ВЯТКА» в полном соответствии с качеством предоставленных материалов. 610033, г. Киров, ул. Московская, 122. Тел. (8332) 53-53-80, info(ggipp.kirOv.ru ISBN 978-5-93208-375-8 (с Лаборатория знаний, 2024
Содержание Предисловие, или что такое Скретч?........................7 1. Знакомимся со средой Скретч ..........................g Создаём спрайты......................................... Редактируем спрайты ..................................13 Превращаем рисунок в спрайт...........................15 Создаём декорации.....................................17 Проект «Волшебный лес»................................20 Вопросы...............................................22 2. Мастерская художника ................................24 Растровая и векторная графика.........................24 Палитра художника ....................................27 Проект «Поздравительная открытка».....................29 Вопросы...............................................32 3. Управление спрайтами.................................34 Поиграем со спецэффектами ............................34 Научим спрайты двигаться..............................36 Научим спрайты рисовать...............................37 Вопросы и задания.....................................38 4. Навигация в среде Скретч ............................41 Координатная плоскость.............................. 42 Тренируемся ориентироваться по координатам............43 Автопилот для спрайтов................................47 Самостоятельная работа ..............................49 5. Проект «Кругосветное путешествие Магеллана»..........52 Собираем информацию ..................................52 Создаём спрайт и фоны.................................53 Собираем скрипт для Корабля...........................56 Добавляем правдоподобия ............................ 57 Премьерный показ......................................58 6. Учимся использовать повторы..........................59 Проект «Суфлёр» .................................. 60 Переводим на алгоритмический язык (КуМир).............63 Самостоятельная работа ..............................63 7. Создаём «вечный двигатель» ..........................67 Проект «Берегись автомобиля!».........................68 3
Проект «Гонки по вертикали»...........................оу Вопросы ................ ............................ 11 8. Учимся ориентироваться по компасу................... 72 Проект «Полёт самолёта»...............................‘3 Вопросы............................................... 9. «Оживляем» спрайты....................................14 Проект «Осьминог* ....................................'° Проект «Девочка, прыгающая через скакалку* ...........81 Проект «Кот и птичка».................................83 Репетируем с героями..................................84 Дополнительные штрихи ................................8, Вопросы .............................................. 10. Соблюдение условий...................................90 Сенсоры...............................................90 Ветвления в алгоритме ................................91 Проект «Осторожно, лужи!»............................ 93 Проект «Тише едешь — дальше будешь!»..................95 11. Управляемые спрайты..................................97 Игра «Лабиринт* ......................................98 Кружащийся котёнок ...................................99 Проект «Опасный лабиринт» ...........................100 Вопросы..............................................101 12. Сложные условия.....................................102 Проект «Хождение по коридору» .......................102 Проект «Слепой кот» ................................. 104 Проект «Тренажёр для памяти* ........................106 13. Случайности по заказу ..............................107 Разноцветный экран ..................................108 Хаотичное движение ............................... 108 Игра «Кошки-мышки» ..................................109 Проект «Вырастим цветник* ...........................110 Вопросы ....................... .....................ПО 14. Другие возможности запуска спрайтов ................112 Проект «Переодевалки» ..........................112 Проект «Не верь глазам своим!*................... .114 Проект «Дюймовочка» ..........................116 Вопросы .............................................118 15. Самоуправление спрайтов.............................120 Передача сигналов....................................120 Проект «Лампа*..................’....................121 4
Проект «Диалог» ....................................122 Вопросы ,123 16. Вернёмся к старым проектам ........................125 Проект «Лабиринт с потайными ходами» ...............125 Вопросы............. ............................... 127 Самостоятельная работа ........................... 127 17. Датчики............................................128 Создание информатора ............................. 129 Проект «Презентация» ............................. 131 Вопросы .............................................133 Самостоятельная работа .............................134 18. Переменные ........................................135 Проект «Мухоловка»..................................137 Игра «Голодный кот» ................................138 Проект «Стрельба из ружья*..........................140 Вопросы........................................... 142 19. Создаём новые команды..............................144 Проект «Бесконечный фон* ...........................147 Блоки с параметрами .............................. 151 Проект «Тир» .......................................153 Самостоятельная работа .............................156 20. Ввод переменных....................................158 Проект «Цветы (1-й вариант)»........................160 Лучший игрок .......................................163 Проект «Который час?» ..............................164 Вопросы.............................................165 Самостоятельная работа .............................165 21. Рычажок ...........................................166 Проект «Цветы* (2-й вариант) .......................168 Проект «Правильные многоугольники» .................169 Проект «Правильные звёзды» .........................171 Вопросы.............................................172 22. Списки.............................................175 Проект «Гадание* ...................................177 Проект «Назойливый собеседник* .....................178 Вопросы.............................................179 Самостоятельная работа .............................181 23. Фантомные объекты .................................182 Проект «Фантомная точка» ...........................182 Проект «Фантомный спрайт» ..........................188 5
24. Клонирование .......................................190 Проект «Лабиринт с потайными ходами» ................191 Проект «Снегопад» ...................................192 Доработка проекта «Бесконечный фон» .................197 25. Вносим в клоны индивидуальность ....................199 Проект «Цветник» ....................................199 Украшательства .................................... 202 Определение максимального цветка ....................203 Проект «Межгалактический полёт» .....................204 26.Проект «Подводная охота».............................209 27. Создание мультфильмов...............................215 Проект «Отбросить коньки»............................215 Самостоятельная работа ............. .............. 222 Заключение..............................................223 6
Предисловие, или Что такое Скретч? Можно ли научиться программировать играя? Оказывается, можно. Американские учёные, задумывая новую учебную среду для обучения школьников программированию, стремились к тому, что- бы она была понятна любому ребёнку, умеющему читать. Название «Scratch* (Скретч) в переводе с английского име- ет несколько значений. Это и царапина, которую оставляет Котё- нок, — эмблема среды, и каракули, символизирующие первый, ещё неуклюжий самостоятельный опыт, и линия старта. Со Скретчем удобно стартовать. Сами разработчики характеризуют программу так: «Скретч предлагает низкий пол (легко начать), высокий по- толок (возможность создавать сложные проекты) и широкие стены (поддержка большого многообразия проектов)*. Подобно тому, как дети, только-только начинающие говорить, учатся складывать из отдельных слов фразы, так и Скретч обучает из отдельных кирпичиков-команд собирать целые скрипты. Скретч приятен «на ощупь». Его блоки, явно сделанные из пла- стичных материалов, можно легко соединять друг с другом и так же легко, при необходимости, разбирать. Они могут многократно растягиваться и снова ужиматься без намёка на изнашиваемость. Скретч зовёт к экспериментам! При этом важной особенностью этой среды является то, что в ней принципиально невозможно создание неработающей программы. В Скретче можно сочинять истории, рисовать и оживлять на экране придуманные персонажи, создавать презентации, игры, в том числе и интерактивные, исследовать параметрические зави- симости. Поскольку любой персонаж в среде Скретч может выполнять па- раллельно несколько действий — двигаться, поворачиваться, изме- нять цвет, форму и т. д., — юные скретчисты учатся представлять любое сложное действие как совокупность простых. В результате они не только осваивают базовые концепции программирования (циклы, ветвления, логические операторы, случайные числа, пере- менные, списки, функции, подпрограммы), которые пригодятся им при изучении более сложных языков, но и знакомятся с полным циклом решения задач, начиная с этапа описания идеи и заканчи- вая тестированием и отладкой программы. Скретч легко перекидывает мостик между программированием и другими школьными предметами. Так возникают межпредметные 7
проекты. Они помогут сделать наглядными понятия отрицательных чисел и координат, уравнения плоских фигур, изучаемых на уроках геометрии. В них оживут исторические события и географические карты. А тесты по любым предметам сделают процесс обучения ве- сёлым и азартным... Скретч — свободно распространяемая среда. Она пережила уже три модификации. Её последняя (3.0) версия позволяет создавать проекты как на сайте скретч-сообщества scratch.init.edu, так и без подключения к Интернету, скачав настольное приложение (https:// scratch.mit.edu/download). В случае проблем с доступностью офи- циального сайта Scratch вы можете воспользоваться альтернатив- ным ресурсом, полностью размещённым на территории РФ: https:// scratch.ru. Книга написана так, чтобы занятия на компьютере чередовались с чтением и выполнением заданий на сообразительность в тетради. 8
1. Знакомимся со средой Скретч Ты наверняка любишь кино. А задумывался ли ты над тем, кто самый главный в искусстве создания фильма? Сценарист? Актёры? А может, костюмеры и гримёры, изменяющие внешность актёров до неузнаваемости? Или декораторы, переносящие зрителей, подоб- но машине времени, в любую эпоху и точку земного шара? Кино — продукт коллективного творчества, и все его составля- ющие одинаково важны. Но всё же можно выделить одну ключе- вую фигуру, без участия которой была бы невозможна слаженная работа всех участников творческого процесса. Это режиссёр. Именно режиссёр выбирает для фильма сценарий, отбирает ак- тёров на роли, ставит задачи перед декораторами, гримёрами, ко- стюмерами, композитором и следит за тем, чтобы результат их ра- боты соответствовал его замыслу... Теперь и ты сможешь попробовать себя в роли режиссёра. А по- может тебе в этом среда Скретч. 1. Найди на рабочем столе иконку приложения Scratch Desk- 0 2. Щёлкни по ней — откроется окно (см. рис. 1.1). (Если вид приложения на твоём компьютере отличается от пред- ставленного на рис. 1.1, то, скорее всего, дело в настройках язы- ка интерфейса. Чтобы русифицировать Скретч, щёлкни по значку земного шара в главном меню и из выпадающего списка выбери вариант Русский.) Прямоугольное поле с котёнком посередине называется сценой. Здесь будут разыгрываться истории с помощью спрайтов, которые способны исполнять написанный им сценарий. Спрайт (англ, sprite — фея, эльф) — это графический объект (рисунок), легко перемещаемый по экрану. Познакомься с одним из спрайтов — Весёлым Котёнком. Он по- является на сцене сразу при загрузке Скретча. 3. Убедись в том, что Котёпка легко перемещать по сцене, захва- тив его мышью. Обрати внимание: под сценой (поле голубого цвета) изображён ещё один Котёнок — поменьше. Это место называется перечнем персонажей (спрайтов). Перечень можно сравнить со списком 9
I 'Э1
м I V F Ч £ О
действующих лиц в пьесе. Как ты увидишь позже, персонажи не всегда видны на сцене — иногда одни появляются раньше, другие позже, третьи, вообще, могут присутствовать в невиди- мом состоянии, но в перечне все участвующие в проекте спрай- ты будут отражаться. 4. Щёлкни правой кнопкой мыши по Котёнку в перечне — откро- ется меню (рис. 1.2): Поояжтъ Ряжм.г. <5> 0 I, 100 экспорт удалить Рис. 1.2 5. Выбери пункт дублировать. Что изменилось на сцене? В перечне тоже отразился новый спрайт. Чем он отличается от исходного? _____________________________________________________ Объект, который выделен в перечне щелчком мыши, становится активным (рис. 1.3). Рис. 1.3 Другой способ сделать спрайт активным — это захватить его мышью на сцене. Активный спрайт подкрашивается в перечне синим цветом, и в его правом верхнем углу появляется крестик. 11
6. Проверь, что будет, если щёлкнуть по крестику. Между сценой и перечнем находится индикаторная панель, которая содержит служебную информацию об активном спрайте (рис. 1.4): Спрайт ♦-* ж у -51 Q Cat I J ф \___________________ Пооззтъ Размер Направление © 0 I* 100 ( 90 j Рис. 1.4 Здесь можно поменять имя спрайту, изменить ему размер, а также узнать некоторые важные его характеристики, которые мы обсудим позже. 7. Придумай своё имя Котёнку и впиши его в окошко под словом Спрайт. 8. Измени размер — в окошке под словом Размер. Что измени- лось? 9. Поэкспериментируй, что изменится на сцене, если нажимать кнопки под словом Показать. Создаём спрайты Кроме дублирования существующих добавлять на сцену новые О спрайты можно с помощью кнопки , находящейся в правом нижнем углу перечня. 1. Наведи на эту кнопку курсором мыши — появится меню (рис. 1.5): Рис.1.5 12
2. Наведи на каждый пункт меню курсором и запиши, какие всплывают подсказки: Кнопка Сюрприз — самая непредсказуемая. Она открывает вол- шебный ящик, из которого может появиться кто и что угодно. 3. Щёлкни по кнопке Сюрприз несколько раз и напиши, кто или что возникло на сцене: ________________________________________ Эти спрайты случайным образом появляются из Коллекции Скретча. 4. Чтобы увидеть всё содержимое Коллекции, выбери вариант Вы- брать спрайт. Спрайты в Коллекции расположены в алфавитном порядке их английских названий. Однако их можно искать по темам: Живот- ные, Люди, Фантастика и др. 5. Найди все спрайты в Коллекции, которые относятся к транс- порту! Запиши их имена: __________________________________ 6. Выбери любой понравившийся тебе спрайт и щелчком мыши добавь его на сцену. Порядок спрайтов в перечне можно менять: для этого нужно захватить мышью спрайт в перечне и переместить его в другое место. Это бывает удобно, когда в проекте задействовано .много спрайтов. Редактируем спрайты В облик спрайта можно вносить изменения. Для этого нужно выполнить следующие действия. 1. Сделай нужный спрайт активным. 2. Щёлкни по вкладке Костюмы (она находится в левом верхнем углу — под значком земного шара, рис. 1.6): 13
Рис. 1.6 Откроется окно графического редактора, состоящее из поля, на котором находится изображение, и набора инструментов по бокам от поля (рис. 1.7). Рис. 1.7 3. Внеси какие-нибудь изменения в изображение спрайта — на- пример, поменяй ему цвет или добавь на нём надпись. 4. Убедись, что спрайт на сцене тоже изменился. 14
Превращаем рисунок в спрайт Ты, как режиссёр,, можешь нисколько не ограничивать себя в фантазии! Если нужного тебе спрайта нет в Коллекции, его можно скачать из Интернета. Однако Скретч поддерживает не все форматы рисунков! 1. Ограничь поиск рисунков в Интернете только теми, что имеют расширения *.bmp или *.png. 2. Скачай понравившийся рисунок на компьютер (Сохранить изобра- жение как), выбрав в качестве места сохранения Рабочий стол. 3. Вернись в приложение Скретч. 4. Нажми кнопку Выбрать спрайт, а из всплывшего списка выбе- ри вариант Загрузить спрайт. 5. Найди скачанный рисунок на Рабочем столе и загрузи его в Скретч. Существует большая вероятность, что твой спрайт окажется с лишним фоном (рис. 1.8а): а) б) Рис. 1.8 6. Чтобы сделать фон вокруг рисунка прозрачным, перейди во вкладку Костюмы. 7. Затем щёлкни по окошку рядом со словом Заливка (она нахо- дится над полем с инструментами) и выбери инструмент Пипет- ка (на рис. 1.9 он показан стрелкой). Пипетка позволяет выбрать цвет для окраски фигуры из цветов, уже используемых в данном проекте. Пипетка незаменима тогда, когда важно, чтобы выбранный цвет в точности совпадал с цветом того или иного объекта. 15
Рис. 1.9 8. В качестве нужного цвета выбери фон в виде шахматной доски (вокруг рисунка) — таким фоном в Скретче помечается про- зрачное пространство (рис. 1.10). Рис.1.10 16
9. Выбери инструмент Заливка (рис. 1.11): Рис.1.11 10. Щёлкни мышью по непрозрачному фону вокруг рисунка (т. е. залей фон выбранным прозрачным цветом) и убедись, что спрайт на сцене избавился от лишних полей (как на рис. 1.86). 11. Уменьши, если нужно, созданный спрайт. Создаём декорации До сих пор все наши спрайты появ- лялись на белой сцене. Однако в Скрет- че» как и на киностудии, можно созда- вать декорации, на фоне которых будет разворачиваться действие. Фон в отличие от спрайтов неподвижен. Сцена в Скретче, как и спрайты, тоже является объектом, информация о котором отражена в правом нижнем углу (под словом Сцена). 1. Наведи курсор на кнопку в ниж- нем правом углу — Выбрать фон (рис. 1.12). Как видишь, создать фон на сце- не можно теми же способами, что и спрайт: выбрать из Коллекции — слу- чайно или целенаправленно, загрузить с компьютера или нарисовать самому (этому способу будет посвящена следу- ющая глава). Выбрать фан Рис. 1.12 17
2. Создай несколько фонов, используя кнопку Сюрприз и выбирая из Коллекции. Понаблюдай, как фон меняет наше восприятие спрайтов на сцене. 3. Убедись, что и число под словом Фоны увеличилось в соответ- ствии с количеством загруженных тобой фонов. Но где же они все? В перечне отображён только один — актив- ный (тот, что в настоящий момент виден на сцене). 4. Чтобы увидеть все загруженные в проект фоны сразу, перейди на вкладку Фоны — она находится там же, где раньше была вкладка Костюмы (когда ты активировал спрайты) (рис. 1.13): 5? Код Фоны Jurassic hbght City 4Ма Ж X--- J Garden-rock Э8С Рис. 1.13 18
Щелчок по фону делает его активным — он отображается на сцене. Активный фон выделяется в перечне фонов голубым цветом, а в его правом верхнем -углу появляется уже знакомый тебе кре- стик. Активный фон можно редактировать и переименовывать — в окошке рядом со словом Костюм (в верхнем левом углу графиче- ского редактора). Так же как и спрайты, рисунки для фонов можно скачивать из Интернета, а потом загружать с компьютера. 1. Найди в Интернете рисунок для фона и скачай его на Рабочий стол своего компьютера. 2. Загрузи его в Скретч как фон (кнопка Загрузить фон). 3. Если фон не заполнил собой всю сцену, перейди на вкладку Фоны. 4. Выбери инструмент Выбрать (рис. 1.14). Рис. 1.14 5. Выдели рисунок — вокруг него появится синяя рамка (рис. 1.15). 6. Найди узловые точки на рамке, наведи на одну из них кур- сор — курсор изменит вид на стрелку в обе стороны («->)• 7. При видоизменённом курсоре растяни рисунок за узловые точки так, чтобы он заполнил собой всё поле графического редактора. Убедись, что и на сцене теперь не осталось пустых мест. 19
Олег Пятин «Лесное озеро* Рис. 1.15 Проект «Волшебный лес» 1. Начни новый проект. Для этого щёлкни по кнопке главного меню Файл и выбери пункт Новый (рис. 1.16). Рис. 1.16 2. Создай — нарисуй или скачай из Интернета — фон Волшебный лес. 3. Создай спрайты сказочных существ. Измени, если нужно, их размеры. 20
4. Найди для своих героев подходящие места в Волшебном лесу и помести их туда (рис. 1.17). Хаяо Миядзаки «Лес». Прохорово Кристино «Баба Яга* Рис. 1.17 Совсем не обязательно, что у тебя получится то же, что у нас на рисунке. Ведь и сказочные существа, и Волшебный лес могут быть любыми! Тут. как говорится, предоставляется полная свобода художнику. 5. Сохрани созданный проект. Для этого: а) выбери в главном меню кнопку Файл; б) в раскрывшемся списке — строку Сохранить на свой ком- пьютер (рис. 1.18); / Косном Файл Новый Загрузить с компьютера «3.137 Сохранить на свой компьютер Руководства Гс. Рис. 1.18 21
в) укажи папку, в которую хочешь сохранить свою работу; г) придумай название своему файлу; д) нажми ОК. 6. Запиши путь к папке, где хранится созданный проект: --- Обрати внимание: к созданным проектам мы будем возвра- щаться по мере овладения инструментами Скретча и дорабаты- вать их. 7. Выйди из программы, щёлкнув по крестику в её правом верхнем углу и выбрав кнопку Leave (покинуть программу) (рис. 1.19). Leave Scratch? Any unsaved changes will be lost. Stay Leave Рис. 1.19 Запускаются созданные проекты только из среды Скретч. Для того чтобы загрузить сохранённый на компьютере проект, нужно щёлкнуть по кнопке Файл и выбрать строчку Загрузить с ком- пьютера. ? Вопросы 1. Для чего нужен перечень объектов в среде Скретч? 2. Как сделать объект активным? 3. Какой из объектов, участвующих в проекте (рис. 1.20), является активным? 4. По каким признакам ты это понял? 5. Чем спрайт отличается от фона? 22
Рис. 1.20 6. Как ты думаешь, домик, в котором живёт Котёнок (рис. 1.21), — это часть фопа или спрайт? Рис.1.21 Обоснуй: 23
2. Мастерская художника В Скретче есть ещё одна возможность создавать спрай- ты и фоны — рисовать их самому! Когда ты выбираешь вариант Нарисовать, то попада- ешь на уже знакомые тебе вкладки Костюмы или Фоны в зависимости от того, что ты собираешься нарисовать спрайт или фон. Давай рассмотрим их содержимое получше. Растровая и векторная графика 1. Выбери для создания фона вариант Нарисовать. 2. Найди под окном графического редактора кнопку Конвертиро- вать в растровую графику. 3. Щёлкни по ней. Что теперь написано на кнопке? Эта кнопка переключает графический редактор в два разных ре- жима: растровый и векторный. Растровый режим — это такой способ рисования, при котором изображение хранится в памяти компьютера как набор окрашен- ных точек, называемых пикселями. А в векторном режиме изображение складывается и хранится как набор отдельных графических вычислимых объектов (прими- тивов). 4. Переключаясь в разные режимы и наводя мышкой на инстру- менты, заполни таблицу: Инструмент Название Растровый режим Векторный режим Кисть Есть Есть * 24
Окончание табл. Инструмент Название Растровый режим Векторный режим г * ►и • t- Чтобы понять разницу между режимами, создадим два фопа: один в растровом, другой в векторном режимах. 5. Для рисования 1-го фона активируй растровый режим (нажми кнопку Конвертировать в растровую графику) и нарисуй две пересекающиеся окружности (рис. 2.1): Рис. 2.1 На сколько частей они делят плоскость? 6. Раскрась все части в разные цвета. 7. Исследуй, какие действия позволяет совершить инструмент Выбрать. ___________________________________________________ 8. А теперь создай ещё один фон — на этот раз в векторном ре- жиме (векторный режим активируется по умолчанию при рисо- вании нового объекта). 9. Снова нарисуй две пересекающиеся окружности — для этого выбери Пипеткой прозрачную заливку. 10. Закрась все возможные области. Сколько цветов палитры тебе понадобилось? ________________________________________________ 25
11. Выбери инструмент Выбрать в векторном режиме. Он позволяет из всего рисунка выбрать отдельный графический объект. 12. Щёлкни по одному из кругов и перетащи его в другое место. Обрати внимание: в растровом режиме такое растаскивание на объекты невозможно! 13. Чтобы рисунок стал единым, захвати с помощью инструмента Выбрать весь рисунок целиком и нажми кнопку Группировать (сверху над полем рисования) (рис. 2.2): Группировать Разгруппировать Рис. 2.2 Группировать можно и отдельные детали рисунка. 14. Убедись, что теперь изображение не распадается на части. 15. Чтобы оно снова распалось на отдельные круги, нажми кнопку Разгруппировать. 16. А теперь конвертируй изображение в растровый режим. 17. Убедись, что теперь круги нельзя разъединить даже при обрат- ной конвертации в векторный режим. В каждом режиме есть свои достоинства. Например, в векторном режиме можно мягко изменять фор- му выбранного графического объекта, потянув за любую точку его контура. На рисунке показаны последовательные стадии рабо- ты с инструментом Изменение формы — выделение объекта, выделение точки на контуре, изменение формы объекта (рис. 2.3). Рис. 2.3 Этот процесс напоминает лепку из теста — настолько графиче- ские объекты оказываются податливы и пластичны!.. 26
С помощью инструментов можно поменять и порядок располо- жения объектов (рис. 2.4): Рис. 2.4 Если изображения, созданные в разных режимах, сильно уве- личить, то векторное останется в том же качестве, что и исходное, а в растровом проявится ступенчатый эффект (рис. 2.5). Рис. 2.5 Палитра художника И в растровом, и в векторном режимах есть инструмент Залив- ка. Мы уже им пользовались, когда избавлялись от лишнего фона при создании спрайта из рисунка, найденного в Интернете. Давай рассмотрим его получше (рис. 2.6). Кроме выбора (с помощью Пипетки) цвета, который уже ис- пользуется в редактируемом или создаваемом изображении, можно подобрать любой цвет. Для этого достаточно двигать ползунок на шкале Цвет и наблюдать, как меняется цвет в окошке Заливка. 1. Выбери для Заливки цвет, который тебе нравится. Обрати внимание: каждый оттенок цвета имеет свой номер. 2. Какой номер у выбранного тобой цвета? 27
Ялпипка Рис. 2.6 3. Исследуй, как меняется цвет в окошке, если двигать ползунок на шкале Насыщенность справа налево. 4. Какому числовому значению соответствует самый насыщенный цвет? _______________________________________________________ 5. Каким становится цвет при крайнем левом положении ползун- ка? _________________________________________________________ 6. Установи ползунок Насыщенности в положение, при котором цвет наиболее насыщенный. 7. Исследуй, как меняется цвет в окошке, если двигать ползунок на шкале Яркость справа налево? 8. Какому числовому значению соответствует самый яркий цвет? 9. Каким становится цвет при крайнем левом' положении ползунка Я ркость? 28
10. Заполни таблицу: Цвет Насыщенность * Яркость белый серый чёрный Над тремя шкалами — Цвет, Насыщенность и Яркость — есть ещё четыре кнопки. 11. Нажимая на каждую, понаблюдай, как будет меняться содер- жимое окошка Заливка. Вторая, третья и четвёртая кнопки задают градиент — плавный переход цвета изображения от одного заданного оттенка к другому. Задать оба оттенка можно в окошках рядом со словом Заменить (рис. 2.7). Рис. 2.7 В зависимости от выбранной кнопки переход цвета будет проис- ходить в горизонтальном, вертикальном направлении или от центра К периферии. Проект «Поздравительная открытка» Создадим открытку, на которой изображены прозрачные воз- душные шары на фоне голубого неба (рис. 2.8). 29
Рис. 2.8 1. Создай новый проект. 2. Создан фон с круговым градиентом от светло-голубого к тёмно- голубому. Это будет небо на нашей открытке. 3. В Коллекции Скретча есть спрайт Воздушный шар (Balloon — см. рис. 1.2). Однако он непрозрачен. Поэтому создадим свой спрайт в режиме рисования. 3.1. Выбери инструмент Круг и нарисуй овал (пока неважно, какого цвета). 3.2. С помощью инструмента Выбрать и последовательного на- жимания кнопок Копировать и Вставить создай копию этого овала (рис. 2.9). в в Заливка Контур Копировать Вставить Удалить Рис.2.9 3.3. 3.4. Расположи оригинал и копию рядом. Один овал залей круговой градиентной заливкой от белого цвета к прозрачному — это заготовка солнечного блика на воздушном шаре. Обрати внимание: солнечный блик внутри контура перемеща- ется вместе с курсором мыши. 30
3.5. Второй овал залей круговой градиентной заливкой от про- зрачного к цвету, которым ты хочешь окрасить воздуш- ный шар. Центр заливки сделай примерно в том же месте, что и на первом овале (рис. 2.10). Рис. 2.10 На сцене твой спрайт сейчас выглядит примерно так (рис. 2.11): Рис. 2.11 3.6. Захватив мышью один из овалов, совмести обе за- ж готовки. ’ 3.7. Выдели один из овалов с помощью инструмента Вперёд Выбрать и поэкспериментируй с помощью кнопок •_ Вперёд и Назад, какой порядок наложения лучше: + когда сверху прозрачный овал или окрашенный. назад Кнопки Вперёд и Назад позволяют менять порядок наложения одних частей изображения относительно других. 31
3.8. С помощью инструментов Прямоугольник и Изменение формы создай нижнюю часть шарика, где он завязывается ниткой (рис. 2.12). Рис. 2.12 3.9. Уменьши, если нужно, получившуюся фигуру — с помо- щью инструмента Выбрать потяни за один из узлов. 3.10. Соедини части шарика в нужном порядке. 3.11. Если хочешь, нарисуй Кистью верёвочку. 4. Продублируй получивший спрайт несколько раз. 5. Каждый шар окрась в свой цвет (для этого нужно снова раста- щить шар на слои и в окрашенном слое поменять цвет). 6. Расположи шары на сцене в композицию. 7. Активируй фон. 8. Перейди на вкладку Фоны. 9. Выбери инструмент Текст и щёлкни мышью в любом месте фона: там появится мигающий курсор в виде вертикальной черты. 10. Введи поздравительный текст — например, *С днём рождения!*. 11. Если надо, увеличь его с помощью инструмента Выбрать. 12. Перетащи надпись в нужное место. 13. Добавь на открытку другие праздничные детали — пирожные, подарки, хлопушки... 14. Сохрани проект. Вопросы 1. Какой рисунок — растровый или векторный — подобен мозаике (см. рис. 2.13)? Рис. 2.13 32
2. Процесс рисования в каком режиме — растровом или вектор- ном — описывается песенкой: Точка, точка, запятая. Вышла рожица смешная. Wfc Ручки, ножки, огуречик - I'J Появился человечек. Д4, 3. В каком режиме хранится спрайт Весёлый Котёнок? 4. Найди в Коллекции Скретча спрайты, созданные на основе фо- тографий — Amon, Anina Dance, Calvrett, Champ99 или Cassy Dance. 5. В каком режиме они хранятся? 6. В каком режиме, по-твоему, изображения более реалистичны? 33
3. Управление спраитами Каждый спрайт в Скретче способен выполнять определённые команды! Для того чтобы узнать, что это за команды, щёл- кни по вкладке Код (рядом с вкладкой Костюмы). Тут все команды распределены по разноцветным ящикам: всё, что относится к движению спрайта, окрашено в синий цвет, ко внешнему виду — в фиолетовый, к событиям — в жёлтый и т. д. (рис. 3.1). Договоримся называть содержимое вкладки Код панелью инструментов. Поиграем со спецэффектами 1. Активируй любой спрайт. 2. Перейди на 3. Щёлкни по 4. Найди блок вкладку Код. кнопке Внешний вид. 5. Перетащи его мышью в Область скриптов пространство между панелью инструментов и сценой (рис. 3.2): Рис. 3 - стплл Рис. 3.2 34
В области скриптов размер блока можно увеличить или умень- шить: для этого нужно нажать на клавиатуре клавишу CTRL и од- новременно покрутить колёсико на мыши. Команда активируется щелчком мыши по блоку. 6. Активируй команду изменить эффект цвет. Как изменился спрайт на сцене? __________________________________________ Число в окошке, так же как и слово цвет в команде изменить эффект, можно изменять. 7. Щёлкни по слову цвет — появится список возможных замен (рис. 3.3). изменить эффект цвет ▼ Рис. 3.3 Изменяющаяся часть команды называется её аргументом, а чис- ло в окошке — параметром. 8. Применяя к спрайту разные эффекты, понаблюдай, как меняет- ся спрайт на сцене. 9. Перейди на вкладку Костюмы и проверь, изменился ли исход- ный вид спрайта:------------------------------------------ 10. Чтобы вернуть спрайту первоначальный облик на сцене, акти- вируй команду убрать графические эффекты Обрати внимание, что менять внешний вид можно не только спрайтам, но и фонам. 11. Загрузи любой фон из Коллекции. 35
12. Перейди на вкладку Код и активируй команду изменить эф- фект мозаика. Как изменился фон на сцене? 13. Исследуй, чем отличается эффект яркость от эффекта призрак. 14. Активируй спрайт. 15. Проверь, чем различается действие команд: 16. Чем ты объяснишь то, что у спрайтов больше команд по смене внешнего вида, чем у фонов? _____________________________ Чтобы убрать команду из области скриптов, достаточно захва- тить её мышью и вернуть обратно на панель инструментов. Либо можно щёлкнуть по ней правой кнопкой мыши и выбрать из рас- крывшегося списка строку Удалить блок. Научим спрайты двигаться 1. Открой ящик Движение. 2. Щёлкни несколько раз по команде Точка, вокруг которой происходит поворот спрайта, называется центром костюма. Чтобы увидеть эту точку, нужно выполнить сле- дующие действия. 3. Перейди в режим редактирования спрайта. 4. С помощью инструмента Выбрать захвати весь спрайт целиком и сдвигай его в сторону до тех пор, пока не покажется еле вид- ный кружок с двумя взаимно перпендикулярными диаметрами (показан стрелкой на рис. 3.4): Рис. 3.4 Центр костюма можно смещать относительно спрайта. 36
5. Перемести центр костюма вовне спрайта. 6. Снова активируй команду повернуть. Как изменилось движение спрайта? _____________________________________________________ 7. Перетащи в область скриптов команду 8. Поменяй число в окошке на 100. 9. Приведи команду в действие. Что произошло со спрайтом? 10. Поменяй число 100 на -100 и активируй команду. Как прореа- гировал спрайт на неё? _______________________________________ В области скриптов отдельные команды можно собирать в еди- ный сценарий, или, по-английски, скрипт — описание действий объекта. Недаром каждый блок имеет выступ снизу и углубление сверху — чтобы их можно было состыковывать, как пазлы или ЛЕГО*. Научим спрайты рисовать Чтобы спрайт мог оставлять за собой при движении след, нуж- но добавить на панель инструментов новые команды — из ящика Перо. Он находится среди расширений к среде Скретч. 1. Найди внизу под ящиками с инструментами кнопку Добавить расширение Ьа1. 2. Щёлкни по ней — откроется окно с дополнительными ящиками инструментов. 3. Выбери ящик Перо — он добавится на панель инструментов. 4. Перетащи в область скриптов три команды: . • опустить перо; • стереть всё; • поднять перо. 5. Соедини между собой команды опустить перо и идти 50 шагов. 6. Щёлкни мышью по получившейся конструкции. Как отреагиро- вал на команду спрайт? ____________________________________ 7. ТПёлкни по блоку стереть всё. Что изменилось на сцене?
8. Составь следующий скрипт (рис. 3.5): опустить перо 50 шагов повернуть * 1 градусов идти повернуть шагов шагов идти градусов градусов Рис. 3.5 9. Активируй скрипт. 10. Что отразилось на сцене? ______________________________ Обрати внимание: спрайт по команде опустить перо оставляет след от центра костюма. Вопросы и задания 1. Как ты думаешь, в каком редакторе — векторном или растро- вом — выполнены сами команды (блоки) Скретча? 2. Что представляет собой угол в 90 градусов? Нарисуй его: Как его по-другому называют? _______________________________ 38
3. Какие из представленных ниже фигур не содержат ни одного угла, равного 90°? Зачеркни их. Па сколько градусов нужно повернуть спрайт, чтобы он оказался вниз головой? _________________________ Проверь свой ответ, дав спрайту команду повернуться на указанное тобой число градусов. 5. Пользуясь командами идти ( ) шагов, повернуть на ( ) градусов, поднять перо и опустить перо, составь для спрайта программу рисования следующих фигур: а) Г б) П в) Т г) + д) н е) квадрат ж) пунктирная линия з) Е 6. Считая длину одной клетки равной 10 шагам спрайта, попробуй определить, какая фигура будет нарисована им в результате вы- полнения скриптов, представленных на рис. 3.6. повернуть *5 на вмВ градусов Рис. 3.6а 39
1“ 1 1 1 п 1 1 | J Li ’ » 1 1 , 1 ц I 1 г и 1— 1 Рис. 3.66 7. Проверь свои ответы на компьютере. 40
4. Навигация в среде Скретч Если активировать команду идти 600 шагов, спрайт убежит за пределы сцены. Возникает вопрос: каковы размеры (в шагах) сцены? И как убе- жавший спрайт можно вернуть обратно? 1. Перетащи в область скриптов команду о перейти в х 2. Активируй её. Как прореагировал на неё спрайт? Обозначим это место на схеме, изображающей сцену, точкой О (см. рис. 4.1). 3. Исследуй, где окажется спрайт, если выполнит следующие ко- манды (отметь на той же схеме) (рис. 4.2). Рис. 4.1 О 4. Попробуй догадаться, где окажется спрайт, если выполнит следующие команды (рис. 4.3). 5. Проверь свои догадки на компьютере. Числа в окошках команды перейти в v i у( ) называются координатами. Для -- - -:дой точки сцены они разные и слу- ж_ат для ориентации спрайтов на сцене. Рис. 4.3 41
Обрати внимание: координатами спрайта считаются координа- ты центра его костюма. Координатная плоскость Точку О, которая имеет координаты (0, 0), называют точкой от- счёта или нулевой точкой. Если через неё провести две прямые горизонтальную (ОХ) и вертикальную (OY) — и ввести единицу (или шаг) измерения расстояния, то мы получим координатную плоскость. Направления вправо и вверх от нулевой точки считают- ся положительными, а влево и вниз — отрицательными. Например, чтобы попасть из нулевой точки О (рис. 4.4) в точку А, надо пройти 2 шага вправо и 3 вверх. А для того чтобы попасть из точки О в точку В. нужно пройти 2 шага влево и 1 шаг вниз. Записывается это так: А(2, 3) и В(—2,-1). А читается: «Точка А с координатами 2, 3 и точка В с координатами —2, —1*. Y J к 3 А(2 3) Е 2 1 -1 1 0 1 2 3 с О X В(- 2,-' 1) -1 \ О F Рис. 4.4 Координата, отражающая сдвиг от нулевой точки в горизон- тальном направлении, называется абсциссой или координатой по оси X. Координата, отражающая сдвиг от нулевой точки в верти- кальном направлении, называется ординатой или координатой по оси Y. При этом первой всегда указывается абсцисса, второй — ордината. 42
1. Определи координаты точек С, D, Е и F на рис. 4.4: Точка Абсцисса Ордината С D Е F С координатами мы имеем дело на каждом шагу. 2. Посмотри на рис. 4.5а и 4.56 и напиши, что на них играет роль координат и что они помогают определить: ЭКРАН о ЯК * (^ ' б) __________________________________ Рис. 4.5 Тренируемся ориентироваться по координатам 1. Расшифруй пословицу: (3, 4) - (1, 4) - (6, 3) - (1. 4) - (1, 2) - (3, 1) (1,4) — (2, 5) — (4, 5) — (2, 4) — (4, 5) — (5, 5) 43
(4, 5) - (3, 4) - (3, 1) — (3, 2) - (4, 5) — (1, 1) — (6, 6), воспользовавшись следующим ключом: 2 3 4 5 6 1 Й ц к Е 1 н 2 1 mJ 3 X ъ 3 ф в А П р 4 0 л Д Э я 5 ч с м и Т ь 6 Б ю Ё 2 ж* ! Как ты понимаешь её смысл? __________________________ 2. Подставь вместо координат буквы (рис. 4.6), и ты прочтёшь ло- зунг, провозглашённый в 1981 г. «крёстным отцом» школьной информатики в СССР академиком А. П. Ершовым: (-2, 0) - (-3, 0) — (0, 0) — (-1, 2) — (-3, 0) - (-3, 1) - (2, 1) — (2, 1) - (-1, 1) - (-3, 0) - (0, 0) - (-2, 2) - (-3, 1) — (3, 1) - (-1, 1) — (1, 2) - (-2, 2) - (2, 0) - (0, 0) - (-3, 0) - (-3, 1) - (2, -2) (-1, 2) — (-3, 0) — (-3, 1) - (2, 1) - (0, 0) - (2, 0) - (3, 1) - (0,0)-(1,0)-(2,0) —(-1,-2) Рис. 4.6
3. Восстанови по координатам рисунок и придумай ему название: а) (0,-170); (0,-70); (-60,-80); (-60,-40); (-100,-10); (-80,0); (-90,20); (-70,20); (-60,40); (-30,0); (-40,80); (-20,60); (0,120); (20,60); (40,80); (30,0); (60,40); (70,20); (90,20); (80,0); (100,-10); (60,-40); (60,-80); (0,-70) (рис. 4.7). -- J 1Л 1ГП| — 1с 1 г JV “ i 1—1 !и 1 л — и 1и )П I J К с Г W — — 1 > £ TXJ ю 1 с г0 1— 1 г 50 — ► 4 * с 'V >П *. in — 5 rV JO р I ,_4 >0 p— -’j - -1 10 L — -1С 0 -fl 0 -60 -4 0 2 0 0 0 4 0 60 80 10 0 -1Ц ' J и Ч -90 < — -/ — 0 -5 0 -3 0 -к ) 1 A 0 30 5 0 7 0 90 110 - 1' —а и о 1 •3 o 1 1 *5 о ,— ... 6 о . 1 1 J r e — j - > - < Ьммма -7 о _ L — 1 1 * -а □ — ’ IV -11 n L и о — H- 1 Ur 1 1 I -14* о -1 о* -16* A 1 7 A - 1 г - 1R и n 1 1 - 1 О’ и Рис. 4.7 45
б) (-40,40); (-40,60); (-20,80); (-10,60); (10,80); (20,60); (20,40); (0,20); (60,20); (60,100); (80,100); (80,-60); (60,-60); (60,-20); (40,-60); (20,-60); (40,-20); (0,-20); (0, -60); (-20, -60); (-20, -20); (-40, -60); (-60, -60); (-20, 20); (-40, 40) (рис. 4.8) 30 80 70 1 I0 —J — 1 — 1 0 гг __ -70-6 0-5 0-40-30-20-10 10 20 30 41 0 5 0 6 0 7 0 8 0 9 0 .3 о 1 0 л J 1» 1 -5 0 1 1 • -6 о ! —7 п V i £ - j . _ i 1 1 Рис. 4.8 в) (80, 20); (40,-20); (20,20); (0,30); (0,40); (20,60); (20,80); (0, 100); (-20, 100); (-40, 80); (-40, 60); (-20, 40); (-20, 30); (-40, 20); (-80, -60); (-80, -80); (-40, 0); (-30, -60); (-40, -175); (-20,-175); (-10,-80); (0,-175); (20,-175); (10,-60); (20,0); (40,-40); (80.20); (80,100); (100,120); (100,160); (80,180); (70,180); (60,160); (60,120); (80,100); (90,90); (70,90); (80, 100) (рис. 4.9). 46
— I— 1 1 j — — r г*— 1 1 1 80 70 1 " « 1 —— - 1' 1 1 — 1 1 bU 40 30 I IIIIIM i -^—4 I - 1 । ~ ~ 1 —““1 n — |> 1 r 1 1— ! ч н 1 t I > — ' 11 L г— — 4v 1— 1 —4 00 90 I- f к— Г" — >80 1 —1 70 _ . j 1 • 1 । ь >1 60 I а w —ч 40 1— — — -м — 30 >..—। 1 г— ’ 1 1 r — —’—' 1 уч — I—1 — — - Si *J 1 — » 1 а — 1 10 0 -60 •60 -4 0 I -20 ’o 2 6 4 0 6 0 80 100 li го 11 1 к 0 1 16 0 -£ 0 5 □ 50 -J.°n 10 1 1 9 0 110 1! 30 150 11 ю is 1 ' — — ?0 1 1 H-— L_l_j L. — 1 1 _ 1 ' *1 r 1 4 > — 1 — □ .1 50 L _ — — 1 1 J SD 1 4 -70 u ao —"1 1 1 > —••< Li - j 1 D • n ’ —и Г**" □ □ 10 1 — 1 z sn — I 1 1 -130 -Л4Д I J 1 | -14 io • J Г0 1 Jj 1 —J ZD Рис. 4.9 Автопилот для спрайтов В Коллекции Скретча есть фон с координатной плоскостью, ко- ~:рая используется в Скретче. Он называется Xy-grid. 47
1. Найди фон Xy-grid в Коллекции и добавь на сцену. 2. Рассмотри рис. 4.10 и заполни таблицу: Координата Минимальное значение Максимальное значение X У 3. Координаты активного спрайта отражаются на индикаторной панели (под сценой): ~осмат» 933vep Направление 0 0 4. Переставляя спрайт на сцене, убедись в наты на индикаторной панели меняются том, что его коорди- так же, как и числа инструментов. в команде на панели 48
5. Меняются ли числа в блоке при перемеще- нии спрайта на сцене, если этот блок находится в области скриптов? Изменять положение спрайта в Скретче можно как с помощью ко- манды ГИгрСИГМ в X , так и с помощью двух других команд, меняющих значение только одной координаты. 6. Перетащи в область скриптов команду 7. Замени число в его окошке на 100. В. Активируй команду. Как изменилось положение спрайта? 9. Перетащи в область скриптов команду 10. Замени число в его окошке на 100. изменить у на 11. Активируй команду. Как изменилось положение спрайта? 12. Заполни таблицу: Действие Команда “сднятъся на 10 шагов вверх “еоеместиться на 20 шагов влево Заститься на 30 шагов вниз Пеоеместиться на 40 шагов вправо Команда перейти в х задаёт абсолютное перемещение Ата, а команды и относи □ Самостоятельная работа L Определяя по рис. 4.11 координаты узловых точек и используя аания следующих фигур: составь для спрайта скрипт рисо- 49
а) домика, б) звезды, в) кораблика. 1 I 1 । < 1 ии L— у и 80 70 ии 50 i-Л Л 30 20 10 101 0 -90-8 1 0-7 0-6 0-5 0-4 0-30-20-10 0 111^ ч П 11 Э 20 31 1 0 4 0 5 0 6 0 7 :0 81 0 9 01( )0 I IU он 'JO ИЛ 1 40 50 60 'JU 80 90- / — "WF Рис. 4.11 2. Чтобы спрайт не заслонял получившееся изображение, спрячь его, нажав на соответствующую кнопку на индикаторной панели: Показать Обрати внимание: даже невидимый, спрайт способен выпол- нять команды. 50
3. Напиши на координатной плоскости своё имя (см. образец): * —1 00 90 80 70 60 50 40 30 20 10 I' I - —" ' — ' - — — — d0< э-э 0-8 0-7 — 0-6 — °’5 0-4 0-3 0-2 0-1 00 •10 1< —_| Э 2 — !0 3' 0 4 0 5 0 6 0 7 0 8i 0 9 I ОК 30 30 40- •50 60- -70 80 -90 I00 — — — - -1 4 Составь скрипт рисования твоего имени (не забудь о командах однять перо и опустить перо). : Активируй скрипт и проверь, правильно ли спрайт написал т=ое имя. 51
5. Проект «Кругосветное путешествие Магеллана» Поможем учителю по географии и истории проиллюстрировать урок о кругосветном путешествии Магеллана! Собираем информацию Используя Интернет, ответь на следующие вопросы. 1. Когда и где жил Фернан Магеллан? ------------ Ferdin-magellanvs « SVPERATIS ANTARTICV FRETIAWGV5 TI15< CLARISS* Портрет Фернана Магеллана неизвестного художника 2. Какова была цель путешествия Магеллана? 3. Из какого города оно началось? 4. Как назывался корабль, на котором плавал Магеллан? 5. Где и как погиб Магеллан? _______________________________ 6. Каковы заслуги Магеллана перед наукой? 52
Создаём спрайт и фоны 1. Начни новый проект. 2. Найди в Интернете и скопируй себе на компьютер: а) карту, на которой изображён путь экспедиции Магеллана. Например, такую, как на рис. 5.1. Рис. 5.1 Или такую (рис. 5.2): Автор рисунка Б. Кыштымов Рис. 5.2 53
б) изображение каравеллы времён Магеллана — например, та- кое (рис. 5.3): Взят из журнала «История корабля». Вып. 2. М., 1989 Рис. 5.3 3. Создай спрайт Корабль, уменьшив его так, чтобы его размеры по горизонтали и вертикали не превышали 20 пикселей. 4. Если Корабль развёрнут на рисунке носом вправо, то разверни его в противоположную сторону — с помощью кнопки Отразить по вертикали (в векторном или растровом режиме): 5. Перемести центр костюма Корабля в его нижнюю левую точку. Например, так, как это показано на рис. 5.4. Рис. 5.4 6. Создай фон Карта, растянув рисунок во всю ширину сцены. 7. Отредактируй карту, удалив из неё надписи с названиями гео- графических объектов, расположенных по пути экспедиции
Магеллана. Это можно сделать с помощью Ластика и Заливки, а можно заменить участки с надписями копиями окружающих участков изображения. Для этого: 1) перейди в растровый режим; 2) с помощью инструмента Выбрать выдели небольшой кусочек фона с изображением океана: 3) нажми последовательно кнопки Копировать и Вставить; 4) наложи скопированный участок па надпись; 5) нажимая кнопку Вставить, создавай новые копии участка океа- на и покрывай ими редактируемый участок (рис. 5.5). Рис. 5.5 Создадим копию фона Карта, на ко- торой сотрём маршрут путешествия Ма- геллана: его наш Корабль будет прокла- дывать сам. А составлять скрипт его движения будем по исходному фону; 6) на вкладке Фоны щёлкни правой кнопкой мыши по фону Карта и вы- бери в выпавшем списке пункт ду- блировать (рис. 5.6); 7) удали из фона-копии маршрут экспе- диции Магеллана (повтори пункты 7: 2-7). экспорт удалить Рис. 5.6 55
Собираем скрипт для Корабля Определение начального состояния — важный этап в любом проекте. Если спрайтов в проекте много, для каждого из них нужно прописать, где он будет находиться, будет ли виден и т. п. 1. Активируй фон с маршрутом путешествия Магеллана. 2. 3. Установи Корабль в его начальной точке. Перетащи в поле команд блок со значени- ями координат старта Корабля. 4. Чтобы Корабль оставлял за собой след, добавь в его скрипт ко- манду опустить перо. Запускаться проект будет по сигналу — щелчку по зелёному флажку над левым углом сцены. 5. Найди в ящике События и перетащи в область скриптов запу- скающий блок 6. Вставь запускающий блок в начало скрипта. 7. Проверь себя: а) переставь Корабль в любое другое место сцены; б) щёлкни по зелёному флажку; в) оказался Корабль на старте? г) не появилось ли на сцене лишних линий? д) какую команду нужно добавить после команды опустить перо, чтобы исправить ошибку? 11рокладываем маршрут. Далее нам предстоит повторить с помощью нашего Корабля весь маршрут, отмеченный на карте. Но вместо блока мы будем использовать команду ПЛЫТЬ секунд в точку х: перейти в х Время плавания (число в окошке перед словом секунд) мы об- судим позже. Поскольку путь, отмеченный на карте, — кривая линия, а движение с помощью команды плыть происходит по прямой, то наша задача — представить весь маршрут в виде отрезков прямой (рис. 5.7). 56
Рис. 5.7 1. Определи на кривой маршрута следующую точку, путь до кото- рой из данной точки можно приближённо считать прямой ли- нией. 2. Перемести в неё Корабль. 3. Добавь к скрипту движения Корабля команду, в которой отра- жаются текущие координаты Корабля: 4. Повтори п. 1-3 для каждой точки разбиения маршрута на от- резки. 5. Какая команда перенесёт Корабль из крайней левой точки маршрута на карте в крайнюю правую? 6. Проверь, не появилось ли при переносе Корабля ненужных ли- ний на карте. 7. Запусти скрипт для Корабля и сравни, насколько след, оставля- емый спрайтом, близок к нарисованному на карте? 8. Если нужно, внеси поправки в скрипт. Добавляем правдоподобия 1. Определи по карте места остановок в путешествии Магеллана — они отмечены точками. Чтобы наш Корабль так же делал остановки в соответствую- щих местах, воспользуемся командой Контроль. из ящика 2. Добавь столько команд в скрипт для Корабля, сколько он должен сделать остановок. 3. Измени число секунд в командах плыть в зависимости от рас- стояния между исходной точкой и конечной (чем больше рас- стояние, тем больше время плавания). 57
4. Смени н на карту, в которой нет линии маршрута — его про- ложит наш Корабль. 5. Запусти скрипт плавания Корабля для устранения недочётов. Премьерный показ Просмотр проекта производится в режиме презентации. В этом режиме не видны никакие инструменты — только то, что должен видеть зритель. 1. Перейди в режим презентации, нажав кнопку верхнем углу над сценой. в правом 2. Запусти проект, щёлкнув мышью по зелёному флажку. 3. Прокомментируй путешествие Магеллана — остановки в пути и открытие новых географических объектов. 4, Сохрани проект. 58
6. Учимся использовать повторы 1. Знаешь ли ты песенку «Жили у бабуси два веселых гуся»? Жили у бабуси Два весёлых гуся, Один — серый, другой — белый. Два весёлых гуся. Один — серый, другой — белый, Два весёлых гуся! Вытянули шеи: У кого длиннее? Один серый, другой белый, — Два весёлых гуся! Мыли гуси лапки В луже у канавки. Один — серый, другой — белый, Спрятались в канавке. Один — серый, другой — белый, Спрятались в канавке! Вот кричит бабуся: ♦ Ой, пропали гуси! Один — серый, другой — белый, Гуси мои, гуси! Один — серый, другой — белый, Гуси мои, гуси!» Выходили гуси, Кланялись бабусе, Один — серый, другой — белый. Кланялись бабусе. Один — серый, другой — белый, Кланялись бабусе! 2. Как ты думаешь, можно ли эту песню записать короче? Сколько строчек осталось бы в сжатой записи без потери смысла песни? 59
3. Текст должен быть без повторяющихся строк: Жили у бабуси Два весёлых гуся, Один — серый, другой — белый. Два весёлых гуся. (Задание подразумевает поставить рядом с повторяющимися строками число повторений.) В Скретче тоже есть возможность сжато описывать повторяющие- ся действия. Для этого в ящике Контроль существует конструкция Повторяющиеся действия иначе называют ещё циклическими (от латинского слова cyclus, означающего «круг»). Содержимое блока повторить называется телом цикла. Проект «Суфлёр» Чтобы певцы не ошибались при пении, создадим для них суф- лера, который подсказывал бы им текст. 1. Начни новый проект. 2. Создай команду, по которой Весёлый Котёнок сможет подска- зать певцам первую строку первого куплета. Для этого: 1) перетащи в область скриптов команду из ящика Внешность; 2) впиши в окошко вместо слова ♦ Привет!» текст первой строки; 3) перетащи в область скриптов блок повторить; 4) вставь внутрь этого блока созданную в п. 2.2 команду; 5) измени число в окошке блока повторить на нужное. Чему оно равно? ___________________________________________ 3. Создай команду, по которой Весёлый Котёнок скажет послед- нюю строку первого куплета. 4. Нужно ли её вставлять внутрь конструкции повторить? 5. Состыкуй блоки в нужном порядке. 6. Чтобы одна подсказанная фраза не сливалась с другой, вставь после команды говорить команду ждать 1 секунду. 60
8. Запусти программу и спой вместе с Котёнком первый куплет песни. Пусть Котёнок не только показывает текст, но и сам его произ- носит. Для этого выполни следующие действия. 9. Щёлкнув правой кнопкой мыши по блоку копию скрипта (рис. 6.1): , создай Рис. 6.1 10. Достань из расширений скретча (кнопка в левом нижнем углу — под ящиками с инструментами) расширение «Текст в речь» (рис. 6.2): Текст в речь Оживи свои проекты речью। Тпес'.-отсч Amazon Web services Рис. 6.2 61
11. Замени в скопированном скрипте команды 12. Скопируй текст из команд говорить в окошки команды сказать. 13. Вставь сразу после запускающего блока команду (без неё Скретч не сможет распознать написанное на русском языке). 14. Запусти проект в режиме презентации. 15. Проверь результат: Котёнок и показывает текст, и произносит его? ____________________________________________________________ Обрати внимание: Котёнок по команде выполни ет одновременно два скрипта! Это пример параллельного про- граммирования. 16. Каким голосом — мужским или женским — Котёнок произно- сит текст? ______________________________________________________ 17. Рассмотри команду установить альт ▼ голос (ящик Текст в речь). Какими ещё голосами спрайт может заго- ворить? 18. Попробуй все варианты. Выбери лучший. 19. Сохрани проект. 62
Переводим на алгоритмический язык (КуМир) Часто возникает вопрос: как записать в тетрадь тот или иной скрипт, не перерисовывая блоки Скретча? Для этого будем исполь- зовать русский алгоритмический язык (КуМир). Он был придуман ещё в 1980-х гг. Так вот, скрипт для суфлёра на алгоритмическом языке выгля- дел бы так: Когда флажок нажат Жили у бабуси Два весёлых гуся. Нц 2 раза Один — серый, другой — белый, Два весёлых гуся. Кц Здесь сокращения Нц и Кц означают, соответственно, «начало цикла» и «конец цикла♦, а команды, заключённые между ними, составляют тело цикла. Самостоятельная работа 1. Проверь, одинаково ли реагирует один и тот же спрайт на ко- манды, изображённые на рис. 6.3. Рис. 6.3 Если нет, то в чём заключается различие? 63
2. Нарисуй то, что отразится на сцене, если выполнить следую- щую программу (рис. 6.4): Рис. 6.4 3. Как ту же программу записать короче, используя конструкцию повторить (запиши на алгоритмическом языке)? 4. Проверь себя на компьютере. 5. Составь программу рисования (рис. 6.5): а) пунктирной линии; б) лесенки, ступенек: в) орнаментов. 64
Рис. 6.5 Подсказка: сначала выдели повторяющуюся часть, составь для неё скрипт, а затем вложи его в конструкцию повторить, указав число повторений, например 5. 6. Попробуй в тетради выполнить фрагмент скрипта (рис. 6.6). Пусть 100 шагов будут равны двум клеткам. Начальное поло- жение — в центре (выделенная точка). Какая фигура получится у тебя? Рис. 6.6 Проверь свой ответ на компьютере. 65
7.*Используя конструкцию повторить, составь скрипт рисования фигуры, показанной на рис. 6.7, так, чтобы спрайт ни разу не поднимал перо и не проходил дважды по одной и той же линии. Рис. 6.7 66
7. Создаём «вечный двигатель» Ты уже, наверное, обратил внимание на то, что команда идти не совсем верно отражает смысл этого слова: спрайт выполняет её настолько быстро, что иллюзии самого процесса движения не воз- никает. Зритель видит лишь результат перемещения спрайта в ко- нечную точку. Поэтому команду идти (10 шагов) надо понимать в смысле: переместиться, оказаться, очутиться (на столько-то шагов дальше)... Однако в проектах часто бывает нужно изобразить именно дви- жение спрайта. И тут без конструкции повторить нам не обойтись. Если повторений очень много, лучше использовать конструкцию из ящика Контроль. (Конечно, слово всегда в дан- ном случае имеет смысл: до тех пор, пока пользователь не остано вит программу.) Покажем применение этой конструкции на примере. 1. Создай новый проект. 2. Создай спрайт Машина (можно выбрать из Коллекции или ска- чать изображение машины из Интернета). 3. Уменьши его в несколько раз. 4. Перетащи в область скриптов конструкцию всегда. 5. Создай скрипт (рис. 7.1): повторять всегда идти шагов р • , Г I «Л * • • « - если касается края, оттолкнуться I.. Ул* < С. / Д ’ . ьйшу' у 1л Рис. 7.1 67
6. Активируй скрипт. Что неправдоподобно в движении Машины? 7. Перетащи в область скриптов команду установить способ вращения влево-вправо ▼ 8. Активируй эту команду. Что изменилось в движении Машины? 9. Какие ещё режимы вращения предусматривает команда? ------- 10. Попробуй все! 11. Какой режим больше подходит для нашего проекта? 12. Добавь команду с подходящим типом вращения в начало скрипта. 13. Поменяй число шагов в команде идти. Что изменилось? 14. Поэкспериментируй, убрав из программы команду если касает- ся края, оттолкнуться. Как будет двигаться Машина? Теперь, получив ключ к «вечному двигателю», ты можешь при- ступить к созданию проектов, связанных с движением. Проект «Берегись автомобиля!» 1. Создай ещё один спрайт — Самолёт. Уменьши его в несколько раз*. 2. Скопируй для него скрипт, созданный для Машины. Для этого: а) захвати мышью скрипт, созданный для Машины, и перетащи его в перечень (не отпуская левой клавиши мыши); б) наведи мышь на изображение спрайта Самолёт, дождись его покачивания и лишь затем отпусти левую клавишу мыши; в) активируй спрайт Самолёт и убедись, что скрипт скопировал- ся — появился в области скриптов для спрайта Самолёт. 3. Задай скорости: для машины — 5 шагов, а для самолёта — 1 шаг. 4. Добавь в начало к обоим скриптам запускаюгЦий блок. 68
5. Нарисуй сцену: горизонтальную дорогу, по которой едет Маши- на, и облачное небо, по которому летит Самолёт. 6. Запусти проект. 7. Аналогичным, образом добавь и другие спрайты — новые авто- мобили. Задай им разные скорости. 8. Не забудь, если нужно, расширить дорогу (редактирование фона сцены). 9. Перейди в полноэкранный режим и полюбуйся созданным мульт- фильмом. 10. Сохрани проект. Проект «Гонки по вертикали» 1, Создай новый проект. 2. Нарисуй фон для сцены: дорожку вокруг прямоугольного газона. 3. Создай спрайт Автомобиль, вид сверху (рис. 7.2): Рис. 7.2 4. Уменьши спрайт так, чтобы Автомобиль умещался по ширине внутри дорожки. 5. Создай скрипт, согласно которому Автомобиль будет ездить по дорожке вокруг газона. Для этого: 1) поставь Автомобиль в нижний левый угол дорожки (на рис. 7.3 это точка А), повернув его направо. Это будет его начальное по- ложение; 69
Рис. 7.3 2) создай команду, по которой Автомобиль окажется в начальном положении; 3) добавь в скрипт команду ка Движение); повернуться в направлении (из ящи- 4) пусть наш Автомобиль будет ехать со скоростью V= 4 шага в единицу времени; 5) подбери число повторений для движения Автомобиля от на- чального положения до точки В со скоростью V. На алгоритмическом языке фрагмент скрипта, описывающий это движение, будет выглядеть так: Нц к, раз идти V шагов Кц 6) составь этот фрагмент скрипта; 7) в правом нижнем углу дорожки (точка В) поверни спрайт Авто- мобиль вертикально вверх; 8) чтобы это действие в точке В Автомобиль совершал автоматиче- ски, добавь в скрипт движения Автомобиля команду; 9) подбери число повторений k2 для движения Автомобиля из точ- ки В в точку С со скоростью V; 10) создай фрагмент скрипта, аналогичный созданному в п. 5.6, со- гласно которому Автомобиль проедет по боковой дорожке 11)снова добавь в скрипт команду поворота 70
12) заключи повторяющуюся часть скрипта в конструкцию Всегда и добавь к нему запускающий блок. 6. Запусти проект в режиме презентации. 7. Сохрани проект. Вопросы 1. Какие команды в скрипте для Автомобиля из предыдущего про- екта не вошли в тело цикла? _______________________ 2. Почему мы не стали создавать фрагменты скрипта, соответству- ющие движению Автомобиля по верхней и левой дорожкам? 3. Что тебе пришлось бы переделать, если бы мы увеличили ско- рость Автомобиля в 2 раза? ____________________________________ 4. Проверь себя на компьютере, увеличив скорость Автомобиля в 2 раза. 5. Можно ли в этом проекте использовать для спрайта Автомобиль режим вращения влево-вправо? Почему? 6. Какой блок помогает запустить несколько спрайтов одновремен- но? ___________________________________________________________ 71
8. Учимся ориентироваться по компасу Ты, наверное, заметил, что в проекте «Гонки по вертикали» мы отсчитывается не от текущего положения спрайта, а от фиксиро- ванного нулевого направления. Нулевое направление соответствует северу на географических картах, т. е. означает направление вверх. Направление 18CF — вниз 90° означает направление вправо, -90 (рис. 8.1). влево. -90' Рис. 8.1 Если ты вдруг забудешь ориентацию, то щёлкни мышью по окошку команды — появится «компас* с подсказками (рис. 8.2а). а) Рис. 8.2 б) 72
Точно такой же «компас» появляется, если щёлкнуть по окош- ку Направление на индикаторной панели (рис. 8.26). Если повора- чивать стрелку, то числа в окошках — команды повернуться в направлении п и на индикаторной панели — будут меняться. 1. Рассмотри рис. 8.3 и заполни таблицу для следующих направ- лений: 2. Используя команду повернуться в направлении, составь скрипт рисования орнамента, изображённого на рис. 8.4. Рис. 8.4 Проект «Полёт самолёта» 1. Создай новый проект. 2. Создай спрайт Самолёт. 3. Уменьши его так, чтобы на сцене мог отразиться его полёт, на- чиная со взлёта и заканчивая приземлением. 73
4. Перемести центр костюма в нос Самолёта. 5. Нарисуй Фон с траекторией движения самолёта (рис. 8.5), со- стоящей из: 1) разбега; 2) взлёта; 3) полёта; 4) посадки; 5) пробега. 6. Для спрайта Самолёт составь программу движения вдоль каж- дого участка траектории. Для этого: 1) задай начальное положение Самолёта — в начале траектории полёта; 2) заполни таблицу направлений для каждого отрезка пути; № участка Угол 1 2 3 4 5 Рекомендация: для каждого участка траектории подбери такой угол наклона Самолёта, чтобы корпус Самолёта располагался вдоль этого участка; 3) для простоты будем считать скорость полёта на каждом участке постоянной, например 4 шага; 4) экспериментальным путём подбери число повторений для дви- жения Самолёта на каждом отрезке и заполни таблицу: № участка Число повторений 1 2 3 4 5 74
5) в соответствии с таблицей составь скрипты полёта Самолёта для каждого скрипта повторить идти участка траектории. Например, для взлёта фрагмент может выглядеть так: 6) соедини фрагменты скрипта между собой; 7) добавь в начало скрипта команду опустить перо 8) активируй скрипт и проверь, насколько траектория Самолёта отличается от нарисованной на фоне; 9) сотри со сцены вспомогательные построения и нарисуй подходя- щий пейзаж; 10) запусти проект в режиме презентации; 11) сохрани проект. Вопросы Впиши ответы на вопросы в клетки: 1) блоки, из которых состоит скрипт в Скретче с точки зрения спрайта; 75
2) растение-компас, встречающееся в степной зоне России. Его ли- стья рёбрами всегда обращены на юг и север; 3) как переводится старинное английское слово compass, давшее название прибору? 4) одна из характеристик спрайта, отражающихся на индикатор- ной панели; 5) в какой стране был изобретён компас? 6) какой стороне света соответствует направление в 90 градусов? Если ты правильно ответишь на все вопросы, то в вертикальном (красном) столбце прочтёшь, из чего сделана стрелка компаса! 76
9. «Оживляем» спрайты До сих пор в наших проектах двигались лишь неодушевлённые предметы — машины, самолёт, корабль. Попробуем теперь «ожи- вить» и нашего Котёнка. 1. Создай новый проект. 2. Перейди на вкладку Костюмы. Здесь видно, что у нашего Котён- ка припасён ещё один костюм (рис. 9.1). Рис. 9.1 3. Шёлка я по костюмам поочерёдно, посмотри, как «оживает» Котёнок на сцене. 4. Чтобы запрограммировать эту смену костюмов, перейди в об- 5. ласть скриптов. Перетащи в неё команду следующий костюм из ящика Внешность. Вложи эту команду в конструкцию и запусти созданный скрипт: не правда ли, костюмы меняются чересчур быстро? Эффект анимации оказывается смазан. 77
Надо добавить Котёнку степенности! Для этого выполни следу- ющее действие. 7. Добавь в скрипт команду исполнит <бег на месте». — с ней Котёнок 8. Какие команды нужно добавить в скрипт» чтобы Котёнок побе- жал и при этом не застрял на краю сцены, а пошёл обратно, не переворачиваясь вверх тормашками? 9. Внеси необходимые изменения в скрипт. 10. Добавь на сцену спрайт Идущий Медведь (Bear walking) из Кол- лекции скретча. 11. Сколько у него костюмов? 12. Создай для Идущего Медведя скрипт, аналогичный созданному для бегущего Котёнка. 13. Активируй оба спрайта. 14. Какой из них движется более правдоподобно и почему? 15. Сохрани проект. Не все движения описываются простой сменой костюмов. На- пример, чтобы сымитировать плавное движение в воде, нужно не- сколько видоизменить скрипт, созданный для Котёнка и Идущего Медведя... Проект «Осьминог» 1. Создай новый проект. 2. Создай первый костюм спрайта Осьминог. Для этого: 1) перейди в режим рисования; 2) создай овал зелёного цвета. Это заготовка для головы Осьминога; 3) вытяни его с помощью инструмента Изменить форму (рис. 9.2); Рис. 9.2 78
4) возьми Кисть толщиной 25; цвет выбери чуть темнее цвета го- ловы Осьминога — это будет цвет задних ног; 5) нарисуй четыре задние вытянутые ноги (рис. 9.3): Рис. 9.3 Рис. 9.4 6) снова выбери для Кисти цвет головы Осьминога и нарисуй ему передние вытянутые ноги (рис. 9.4); 7) нарисуй глаза и рот Осьминогу; 8) выдели весь рисунок (инструментом Выбрать) и перемести центр костюма в крайнюю верхнюю точку головы Осьминога; 9) не снимая выделения, поверии рисунок на 90 градусов вправо. 3. Создай второй костюм спрайта Осьминог. Для этого: 1) щёлкни правой кнопкой мыши по костюму Осьминога (на вклад- ке Костюмы!) — в появившемся списке выбери пункт дублиро- вать (рис. 9.5): gf Костюмы экспорт Рис. 9.5 Копирование гарантирует совмещение центров костюмов. Если центры окажутся несовмещёнными, то при смене костюмов изо- бражение будет скакать; 2) на копии костюма удали все ноги Осьминога, кроме одной зад- ней (это нужно, чтобы сохранить цвет задних ног); 79
3) выбери для Кисти цвет задних ног. Удали ногу; 4) нарисуй четыре задних ноги в согнутом положении (рис. 9.6): Рис. 9.7 Рис. 9.6 5) выбери для Кисти цвет передних ног и нарисуй четыре согну- тых передних ноги (рис. 9.7). Оба костюма готовы! Обрати внимание: если же костюм тебе не удался, его можно удалить, нажав на крестик (в правом верхнем углу изображе- ния на вкладке Костюмы) и нарисовав новый костюм. 4. Составь скрипт для Осьминога: 1) составь следующий фрагмент скрипта (рис. 9.8): повторить раз идти шагов следующий костюм Рис. 9.8 2) щёлкая по скрипту, понаблюдай, как ведёт себя Осьминог на сцене; 3) подумай, .можно ли заменить этот фрагмент командами, пока- занными на рис. 9.9. 80
идти шагов следующий костюм Рис. 9.9 Почему? ________________________________ 4) создай скрипт, в котором движение Осьминога будет многократ- но повторяться; 5) какой тип вращения нужно выбрать для Осьминога? 6) поверни Осьминога под небольшим углом и добавь в скрипт запускающий блок, а также команду отталкивания от краёв сцены. 5. Загрузи из Коллекции картину подводного мира. 6. Проанализируй, от какого параметра зависит плавность движе- ний Осьминога — от числа повторений или от длины шага? 4 7. Перейди в полноэкранный режим и активируй проект. 8. Сохрани проект. Проект «Девочка, прыгающая через скакалку» 1. Создай новый проект. 2. Создай (нарисуй) спрайт Девочка, прыгающая через скакалку, в двух костюмах. Например, такую, как на рис. 9.10. Рис. 9.10 81
3, Как смещается центр костюма при прыжке вверх? 4. Какая команда задаст такое смещение? 5. Как смещается центр костюма при прыжке вниз? 6. Какая команда задаст смещение вниз? Чтобы не получилось так, что при приземлении Девочка под гибает ноги, а при прыжке вниз — выпрямляет, лучше в скрипте вместо команды следующий костюм указать в явном виде названия нужных костюмов. Для этого выполни следующие действия. 7. Для каждого костюма придумай названия — например, Вверх и Вниз. Впиши их в окошко рядом со словом Костюм (над полем для рисования) (рис. 9.11): Рис. 9.11 8. Составь скрипт, описывающий бесконечную смену костюмов, используя команду (рис. 9.12): изменить костюм на Вверх Рис. 9.12 9. Чтобы от движений Девочки на сцене не рябило в глазах, ис- пользуй команду ждать 0,5 секунд. 10. Нарисуй подходящий пейзаж. 11. Сохрани проект. 82
Обрати внимание: чтобы скопировать поведение одного спрайта при создании другого, можно продублировать спрайт, а затем, перейдя на вкладку Костюмы, создать для копии другое изо- 0 сражение (с помощью кнопки внизу вкладки Костюмы), а затем старый костюм удалить. Проект «Кот и птичка» Анимируем такой сюжет: кот часами ходит вокруг клетки, под- вешенной над столом, мечтая поймать птичку. А птичка перепар- хивает с места на место, то ли дразня кота, то ли пытаясь от него скрыться... (рис. 9.13). Рис. 9.13 Для начала определимся: что из перечисленного — кот, птич- ка, клетка, стол — будет в нашем проекте спрайтами, а что можно отнести к фону? Ну, с птичкой и котом всё понятно: по сюжету они совершают движения — значит, это спрайты. Стол неподвижен — значит, его можно считать частью фона. А вот с клеткой не всё так просто, как кажется. С одной сто- роны, она тоже неподвижна и, казалось бы, может быть отнесена к фону. Но, с другой стороны, птичка должна находиться внутри клетки, а не перед ней. Да и кот будет то перед, то за клеткой. Поэтому клетку тоже сделаем спрайтом. Итак, создай следующие объекты. 1. Птичка. • Установи центр костюма Птички в её лапках. Тогда при пово- роте Птичка будет оставаться сидящей на том же месте. 83
2. Кот — в 4 костюмах, соответствующих двум фазам движения за клеткой — мордой к зрителям — и двум фазам движения перед клеткой — спиной к зрителям. 3. Фон — комната со столом, по которому и будет кружить Кот... 4. Клетка для Птички. • Установи Клетку на столе в центре сцены. Репетируем с героями Птичка Птичка будет перепархивать из левого угла клетки (точка А на рис. 9.14) на жёрдочку (точка В), с жёрдочки — в правый угол (точка С). Там разворачиваться и совершать те же движения в об- ратном направлении. И так многократно. Рис. 9.14 1. Перемещая Птичку в места на сцене, соответствующие точкам А, В и С на рис. 9.14, создай скрипт для Птички. Он состоит из следующих частей: • начальное положение (когда флажок нажат): □ смотреть направо; о оказаться в точке А; о для того чтобы Птичка была за Клеткой, добавь команду (из ящика Внешность). Как ты думаешь, что такое слой в Скретче? • бесконечное порхание: о посидеть немного (ждать 1 секунду); о переместиться в точку В; о посидеть немного; о переместиться в точку С; о посидеть немного;
о развернуться (направление -90 градусов); о переместиться в точку В; о посидеть немного;- о переместиться в точку А; о посидеть немного. о развернуться (направление 90 градусов). 2. Можно ли сократить число команд в скрипте для Птички? Если да, то сократи. Если нет, почему? 3. Какая команда больше подходит для движения Птички — идти (перейти) или плыть? _______________________________________ 4. Активируй скрипт для устранения недочётов. Кот Кот должен кружить вокруг Клетки. Посмотри на рис. 9.15: траектория движения Кота за Клет- кой — [А^В,] отличается от траектории движения перед Клет- кой — [А2, В2]: Рис. 9.15 1. Последовательно перемещая Кота в точки Ац Bt, В2, А2, создай скрипт для Кота. Он состоит из следующих частей: • начальное положение: о смотреть направо; о оказаться в точке А(, о перейти на 2 слоя назад. Почему именно на 2 слоя назад? • движение Кота за Клеткой — со сменой костюмов 1 и 2 по следующему алгоритму (рис. 9.16):
изменить костюм на Костюм 1 * * ' 1 " :’ АВ •• \ю изменить костюм на КостюмЗ ▼ Рис. 9.16 Как ты думаешь, почему мы использовали команды Подбери числа в окошках команд скрипта, изображённого на рис. 9.16; • разворот и переход в точку В2: о перейти в точку В2, о развернуться на 180 градусов, перейти в верхний слой (ящик Внешность), о перейти к костюму 3; • движение Кота перед Клеткой — со сменой костюмов 3 и 4 — аналогично движению за Клеткой; • разворот и переход в точку А,: о перейти в точку А,, о развернуться на 180 градусов, о перейти на 2 слоя назад, о перейти к костюму 1. 2. Заключи получившийся скрипт в конструкцию всегда. 3. Активируй скрипт для выявления и устранения недочётов. 86
Дополнительные штрихи 1. Варьируя число в блоках ждать, измени скорость движения Кота так, чтобы он и Птичка возвращались на исходные пози- ции примерно в одно и то же время. 2. Добавь в проект звуки: Птичке — щебет, Коту — мяуканье. Для этого: 1) активируй спрайт Птичка; 2) перейди на вкладку Звуки (рис. 9.17): Рис. 9.17 3) внизу на вкладке нажми на кнопку Выбрать звук (рис. 9.18): Рис. 9.18 4) перейди в Коллекцию скретча; 5) прослушай находящиеся в ней звуки. Сколько из них имеют от ношение к птицам? . А сколько к котам? ----------------- 87
6) каковы их английские названия? 7) выбери подходящие для проекта звуки для Кота и Птички; 8) перейди во вкладку 9) перетащи в область (ящик Звук); Код — выбранные тобой звуки уже здесь; скриптов команду играть звук ▼ до конца 10) вставь её после команд разворота Птички в Клетке; 11) если ты импортировал из Коллекции для Птички несколько звуков, то щёлкни по треугольнику в окошке команды и выбе- ри из списка нужный. 3. Те же действия (см. п. 2.11) проделай для спрайта Кот. 4. Добавь мяуканье Коту после каждого шага. 5. Перейди в полноэкранный режим и запусти проект. 6. Сохрани проект. Вопросы 1. Чем новый костюм в Скретче отличается от нового спрайта? 2. Может ли быть на спрайт надето два костюма одновременно? 3. Может ли у спрайта быть два совершенно разных костюма — например, Дом и Собака? Если нет, то почему? Если да, то в каком проекте это может быть? 4. Реши кроссворд: 1) имя попугая из мультфильма «Возвращение блудного попугая»; 2)синоним слова «мультипликация»; 88
3) Российский мультсериал о забавных круглых существах, живу- щих в собственном вымышленном мире; 4) Актриса, голосом которой говорит Заяц из мультсериала «Ну, погоди!»; 5) Создатель Микки-Мауса; 6) Мультипликационный персонаж, памятник которому установ- лен в Томске. Если его погладить по животу, он произносит: «Щас спою!». Если ты правильно ответишь на все вопросы, то в вертикальном (выделенном) столбце у тебя получится фамилия балетмейстера Ма- риинского театра, создавшего в 1906 г. первый кукольный мульт- фильм, в котором 12 фигурок из папье-маше танцевали на фоне неподвижных декораций. 89
10. Соблюдение условий Сенсоры Живые существа постоянно реагируют на изменяющиеся усло- вия окружающей среды. Даже если вокруг ничего не происходит, чувствительные механизмы, или сенсоры, организма продолжают работать и посылать мозгу сигнал: «Всё в порядке!». Работа сенсоров заключается в ответе на вопрос, соответствует ли наблюдаемый параметр некоему критерию, или условию. На- пример, сенсоры, отслеживающие количество питательных веществ в организме, посылают сигналы мозгу в виде чувства сытости или голода. На разные сигналы организм реагирует по-разному: чувство голода заставляет его искать и принимать пищу, а чувство сытости нет. Подобные сенсоры есть и в Скретче. 1. Открой ящик Сенсоры. 2. Рассмотри находящиеся в нём остроугольные блоки (рис. 10.1). касается указатель мыши • клавиша пробел • нажата? мышь нажата? Рис. 10.1 3. Щёлкни по любому из них. Каков результат? 4. Активируй сцену. 90
5. Перейди во вкладку Фоны и нарисуй на сцене небольшой го- лубой круг. 6. Расположи Котёнка на сцене так, чтобы он касался нарисован- ного круга. 7. 8. 9. Активируй спрайт Котёнок. Перетащи в поле команд блок Щёлкни по цветному окошку в нём (рис. 10.2). касается цвета Цвет 48 Яркость Рис. 10.2 10. Выбери инструмент Пипетка (на рис. 10.2 указан стрелкой) и щёлкни по голубому кругу на сцене. Изменился ли цвет в окошке команды? 11. Снова щёлкни по команде касается цвета. Каков результат? 12. Какой можно сделать вывод? Для чего служат сенсоры? 13. Являются ли сенсоры командами для спрайта? Ветвления в алгоритме Подсказкой к ответу на последний вопрос может служить фор- ма блоков сенсоров: в них нет выступов и пазов, с помощью кото- рых команды в скрипте соединяются друг с другом. 91
Сами по себе сенсоры не являются командами. Но в зависимо- сти от их показаний — false (ложь, нет) или true (истина, да) — выполняются или не выполняются те или иные команды. Схемати- чески это выглядит так (рис. 10.3): Рис. 10.3 Ромб с условием — это и есть сенсор. А целиком вся конструк- ция называется алгоритмом ветвления. Впрочем, не всегда ветвления в алгоритмах содержат обе вет- ки. Например, команда «Если пойдёт дождь, возьми зонт» является примером алгоритма с неполным ветвлением (рис. 10.4): Рис. 10.4 Соответственно, схема, изображённая на рис. 10.3, называется полным ветвлением. Итак, сенсоры — это лишь одна из частей, составляющих ал- горитм ветвления. Их содержимое — всегда вопросительное пред- ложение. 1. Изобрази в виде блок-схемы надпись на сказочном камне: «Пря- мо пойдёшь — богатым будешь, иначе — женатым будешь» (рис. 10.5). 92
Да Нет I Рис. 10.5 2. Просмотри содержимое всех инструментальных ящиков и дога- дайся по форме блоков, дополнением к каким из них являются сенсоры: __________________________________________________ 3. Какой из блоков соответствует полному, а какой — неполному ветвлен и ю ? _____________________________________________ Спрайты в Скретче тоже способны реагировать на условия. Для этого используются блоки условий с шестиугольными окошками. Они находятся в ящике Контроль. Покажем их работу на примере. Проект «Осторожно, лужи!» Представь себе машину, которая замедляет скорость, когда про- езжает по лужам. 1. Открой проект «Берегись автомобиля!». 2. Активируй сцену и дорисуй на дороге, по которой едут маши- ны, две небольшие чёрные лужи на достаточно большом рассто- янии друг от друга — много большем, чем длина машин. 3. Активируй один из спрайтов-машин. Мы превратим его в ма- шину-чистюлю. 4. Перетащи в область скриптов конструкцию неполного ветвле- ния 5. Перетащи туда же сенсор < * и вставь его в окошко конструкции если. 93
6. Измени цвет в окошке сенсора на цвет луж, нарисованных на дороге. 7. Перетащи блок ждать 0,1 секунды и вставь его внутрь кон- струкции если (рис. 10.6): Рис.10.6 8. Добавь получившееся условие в скрипт для машины. 9. Запусти проект и сравни поведение машины-чистюли с поведе- нием других машин. Есть ли разница? 10. Сохрани проект под названием «Осторожно, лужи!». Скрипт для машины-чистюли можно было составить и с кон- струкцией полного ветвления. Для этого в случае выполнения ус- ловия нужно задать одну скорость движения, а в случае невыпол- нения — другую. Например, так (рис. 10.7): если касается цвета i ) ? , то - I I иначе vi- вЬи шагов ___-_____________ Рис. 10.7 11. Измени в своём скрипте конструкцию ветвления. 12. Как ты думаешь, почему машина-чистюля стала ездить быстрее машины-внедорожника? 13. Какие ещё изменения нужно внести в скрипт, чтобы машина- чистюля замедляла движение при езде по лужам, а не ускоря- лась? 94
Проект «Тише едешь — дальше будешь!» Теперь мы можем пустить наши спрайты по более сложным траекториям, чем прямая- линия! Например, по таким, какие показаны на рис. 10.8. Рис. 10.8 Для этого воспользуемся спрайтом из Коллекции скретча — раз- ноцветным жуком Ladybugl. Он хорош тем, что у него есть усики, которые мы сделаем индикаторами правильного движения. 1. Создай новый проект. 2. Импортируй спрайт Ladybugl. 3. Уменьши его до 50%-го размера. 4. Покрась ему усики разным цветом. Например, так (рис. 10.9). Рис. 10.9 г 5. Создай фон с замкнутой линией без углов (см. рис. 10.8). 6. Создай скрипт движения для Жука — пусть он всегда идёт с небольшой скоростью и всё время проверяет, не коснулся ли он усиками дорожки: • если коснётся правым усиком, то должен повернуться на 1 гра- дус по часовой стрелке; • если коснётся левым усиком, то должен повернуться на 1 гра- дус против часовой стрелки. 95
Подсказка: для этого используй сенсор цвет I Цвет в первом окошке — цвет усика, во втором — цвет линии. 7. Добавь в скрипт запускающий блок. 8. Перемести Жука на линию и расположи его вдоль линии на фоне (подобрав подходящее направление для Жука). 9. Активируй скрипт. 10. Проверь: 1) хорошо ли • не забыл Жук идёт вдоль прямых участков пути. Если нет: ли ты использовать команду • выполняется ли движение всегда, без всяких дополнительных условий? 2) выравнивает ли Жук движение на небольших извилинах? Если нет, не перепутал ли ты цвета в окошках сенсора? 3) что происходит на поворотах? Если Жук сходит с дистанции: • возможно, траектория имеет слишком острые углы. Подкор- ректируй её; • уменьши Жуку скорость. Обрати внимание: на очень извилистых дорогах скорость дви- жения может быть меньше 1 шага, например 0,5 шага или даже 0,25 шага. Это как раз тот случай, когда пословица «Тише едешь — дальше будешь» верна как никогда. 11. Если все ошибки исправлены и Жук хорошо проходит задан- ный путь, создай другой фон — с другой траекторией. 12. Повтори пункты 8-10. 13. Сохрани проект. 96
11. Управляемые спрайты Создадим спрайт, который будет управляться с клавиатуры: при нажатии пользователя на стрелку вверх спрайт будет перемещать- ся вверх по экрану; при нажатии на стрелку вправо — двигаться вправо; аналогично для стрелок вниз и влево. 1. Открой новый проект. 2. Создай спрайт Робот. 3. Перетащи в область скриптов конструкцию если. 4. В качестве условия вставь в него сенсор клавиша пробел ▼ нажата? 5. Клавишу пробел замени на стрелку вверх. Для этого: 1) щёлкни по треугольнику рядом со словом пробел — раскроется список клавиш; 2) выбери нужную (рис. 11.1): клавиша пробел ▼ нажата? Рис. 11.1 97
6. Создай следующий фрагмент скрипта: если нажата стрелка вверх, то: 1) повернуться в направление вверх; 2) пройти 3 шага. 7. Аналогично создай фрагменты с условиями: 1) если нажата стрелка вниз; 2) если нажата стрелка направо; 3) если нажата стрелка влево. 8. Вложи все четыре фрагмента в конструкцию всегда. 9. Добавь запускающий блок. 10. Активируй скрипт. 11. Нажимая клавиши со стрелками, убедись, что Робот правильно на них реагирует. Если нет, то проверь, не вложена ли одна конструкция ветвления в другую. 12. Измени скрипт так, чтобы Робот мог рисовать. 13. Нарисуй, управляя Роботом, прямоугольник и лесенку. 14. Сохрани проект. Игра «Лабиринт» Игра заключается в том, чтобы управляемый стрелками Котё- нок дошёл, не касаясь стен лабиринта, от старта до приза. Если же он коснётся стен, то будет отброшен на старт и ему придётся начинать всё сначала... Рис. 11.2 1. Создай копию проекта «Управляемый робот». 2. Импортируй для Робота ещё один костюм — Котёнок, вид свер- ху (Cat2). 98
3. Удали костюм Робот — теперь управляемым стал Котёнок. 4. В качестве фона нарисуй лабиринт с голубыми дорожками на сером фоне — как, например, на рис. 11.2. В конце лабиринта изобрази какой-нибудь приз для Котёнка (например, колбасу, мышку или сосиску). 5. Уменьши Котёнка так, чтобы он умещался внутри коридоров лабиринта. 6. Измени скрипт для Котёнка так, чтобы он не оставлял после себя следов (не рисовал). В чём заключаются эти изменения? 7. Добавь в скрипт команды, задающие его исходное положение — в левом нижнем углу, развернувшись в направлении вверх. Что это за команды? 1)__________________________________________________________ 2)______________________________________________;___________ 8. После какого блока они следуют в программе? 9. К командам, определяющим поведение Котёнка, добавь следу- ющие: 1) если Котёнок касается стен Лабиринта (цвета стен Лабирин- та) — он возвращается на исходную позицию (см. п. 7) и ждёт 1 секунду: 2) если Котёнок касается приза (цвета приза), то играет радостная музыка (например, звук Eggs из папки Циклы) и игра прекра- щается (команда из ящика Контроль). 10. Запусти игру для выявления и устранения недочётов. В частно сти, проверь: 1) находится ли Котёнок при запуске игры на старте? 2) возвращается ли Котёнок на старт при касании стен Лабирин- та? 3) можно ли дойти до приза? Если нет, то в Лабиринте либо узкие коридоры, либо слишком большая скорость движения Котёнка. Внеси необходимые поправки; 4) прекращается ли игра при достижении Котёнком приза (Котё- нок перестаёт реагировать на нажатия стрелок)? 11. Сохрани проект. Кружащийся котёнок Предусмотрим вариант для любителей более сложных игр. В том же проекте создай ещё один фон — лабиринт не с пря- мыми дорожками, а с закруглёнными, как, например, на рис. 11.3. 99
Рис.11.3 Попробуй-ка теперь дойти до приза! Впрочем, можно сделать так, чтобы и в таком лабиринте Котё- нок легко перемещался. Для того чтобы Котёнок легко проходил по кривым коридорам, нужно сделать его более гибким — чтобы он мог поворачиваться на любой угол. 1. Создай копию игры «Лабиринт* под названием «Круглый ла- биринт». 2. «Привяжи* к стрелкам новые команды: 1) к стрелке вверх — поворот Котёнка на 1 градус; 2) к стрелке вправо — 1 шаг. 3. Другие стрелки нам теперь не понадобятся, поэтому удали при- вязанные к ним команды. 4. Запусти программу и убедись в том, что Котёнок теперь легко преодолевает любой крутой поворот!.. Проект "Опасный лабиринт» Создадим ещё один вариант — для любителей опасностей. В этом варианте касание стен лабиринта будет стоить Котёнку жиз- ни — он будет взрываться, а игра — прекращаться... 1. Создай копию игры «Лабиринт» под названием «Опасный ла- биринт». 2. Создай ещё один костюм Котёнку — Взрыв. Например, такой, как на рис. 11.4. 100
Рис. 11.4 3. Измени команды при условии касания Котёнком стен лабирин- та. Теперь он должен: 1) перейти к костюму Взрыв; 2) подождать 1 секунду; 3) спрятаться (ведь взрыв не может длиться вечно!); 4) остановить игру. 4. Внеси необходимые изменения в команды, определяющие ис- ходное положение Котёнка. Перечисли, какие команды нужно добавить: 1) 2) 5. Запусти иг0у для выявления и устранения недочётов. 6. Сохрани проект. Вопросы 1. Перечисли, какие изменения нужно внести в игру, чтобы, дой- дя до победы. Котёнок превращался в тигра. 1) 2) 3) 2. Запиши, как изменится скрипт для управляемого стрелками спрайта, если использовать команды • если нажата стрелка вниз: ________________________________ • если нажата стрелка вправо: • если нажата стрелка влево:________________________________ • если нажата стрелка вверх: _______________________________ 101
12. Сложные условия В жизни наши решения часто зависят от выполнения не одно- го, а сразу нескольких условий. Например, мама обещает своему ребёнку: *Если выпадет снег и ты будешь себя хорошо вести, то мы пойдём кататься на санках». Невыполнение хотя бы одного из этих условий сделает поход на горку невозможным. Такие условия называются сложными, или составными, по* скольку складываются из нескольких простых. Вот ещё один пример со сложным условием. Человек пришёл в магазин купить колбасу. Но, увидев на витрине свои любимые кон- феты, он прикидывает: «Мне хватит денег на 2 килограмма конфет, если я не куплю колбасу или если конфеты окажутся дешевле, чем 200 рублей за килограмм*. Для реализации сложных условий в Скретче существуют остро- угольные блоки из ящика Операторы, связывающие простые усло- вия союзами и и или, а также меняющие их смысл на противопо- ложный с помощью отрицательной частицы не (рис. 12.1). Рис. 12.1 Продемонстрируем применение сложных условий на примере. Для этого немного изменим условия задачи о лабиринте. Проект «Хождение по коридору» 1. Создай копию проекта ♦Лабиринт». Пусть стены лабиринта станут для Котёнка безопасными, но не- проницаемыми. Как этого добиться? Во-первых, нужно удалить из программы «штрафные* коман- ды, выполняющиеся при условии касания Котёнком стен лабирин- та. Тогда он станет для него безопасным. 2. Произведи необходимые изменения в программе. Во-вторых, к командам, определяющим действия Котёнка при условии нажатия клавиш со стрелками, нужно добавить ещё одно условие — чтобы при этом Котёнок не касался стен лабиринта. Эти 102
два условия должны выполняться одновременно, поэтому мы соеди- ним их союзом «и» (рис. 12.2). если клавиша стрелка вверх ▼ нажата? и не касается цвета ( ) ? то Рис. 12.2 3. Аналогично измени условия для трёх других стрелок. 4. Протестируй программу. Что происходит с Котёнком, когда он касается стен лабиринта? __________________________________ 5. Почему? В программу необходимо добавить команды, определяющие дей- ствия Котёнка при касании им стен лабиринта (цвета стен). Для того чтобы стены лабиринта были для Котёнка непроницаемыми, нужно создать эффект отталкивания от них. 6. Составь такую команду, как показано на рис. 12.3: если касается цвета Г ) ? , то идти шагов Рис. 12.3 7. Протестируй игру и убедись в том. что Котёнок не может прой- ти сквозь стены лабиринта. 8. Протестируй, как будет вести себя Котёнок, если коснётся стен лабиринта хвостом? (Для этого создай ещё один фон, половина которого окрашена в цвет стен лабиринта, и расположи Котёнка так, чтобы его хвост касался окрашенной части фона.) 9. Возможна ли в нашем проекте такая ситуация? (Если да, то при каких условиях? Если нет, то почему?) ------------------— К сожалению, сенсоры в Скретче не умеют отличать голову (верх) спрайта от хвоста (низа). 10. Чтобы их «научить» этому, окрась голову и хвост Котёнка в разные оттенки. Например, кончик хвоста сделай светло-серым, а голову — рыжей. 103
Обрати внимание: изначально Котёнок, хоть и кажется моно- тонно-рыжим, очень пёстрый. Поэтому, если его не отредакти- ровать, то условий касания цветом цвета должно быть очень много — для каждого оттенка... цвет 11. Измени созданную в п. 6 команду с учётом того, что теперь она должна выполняться только при условии касания стен лабиринта головой Котёнка (используй сенсор - 12. Создай аналогичную команду для случая касания Котёнком стен лабиринта хвостом. Чем они различаются? 13. Запусти игру. Удостоверься в том, что Котёнок действительно не может выйти за границы коридора, но свободно перемеща- ется внутри него. 14. Сохрани проект. Проект «Слепой кот» Дополним нашу коллекцию игр ещё одной. Поиграем в слепого кота! Пусть наш Котёнок пробирается к призу на ощупь, не видя, где есть проход, а где — стены... Добиться этого легко, если закрасить одним цветом и ко- ридор, и стены, и приз. Но сенсоры, реагирующие на цвет иве? ; касается цвета касается цвета ) ? чае не сработают, а, значит, Котёнок не сможет отличить коридор от стены... Выход из положения подсказывает сенсор касается объекта (рис. 12.4), касается указатель мыши Рис.12.4 Поскольку в Скретче есть такой сенсор, сделаем и стенки лаби- ринта, и приз спрайтами. 104
1. Создай копию игры «Лабиринт*. 2. Закрась фон однотонно голубым цветом. 3. Создай спрайт Стена, представляющий собой пространство вне лабиринта. Например, так, как показано на рис. 12.5. Рис. 12.5 4. Увеличь его так, чтобы он занял всю сцену. 5. В скрипте для Котёнка подкорректируй его исходную пози- цию — вне спрайта Стена (в точке № 1 на рис. 12.5). Теперь в командах, определяющих поведение Котёнка при на- жатых клавишах со стрелками, условие некасания цвета стен ла- биринта нужно заменить на условие некасания спрайта Стена. 6. Произведи необходимые изменения в условиях для команд, «привязанных» к клавишам со стрелками. 7. Чтобы избежать ситуации касания Стены хвостом Котёнка, сме- сти центр его костюма (точка О на рис. 12.6) так (точка О|), что- бы расстояние L, от центра до кончика хвоста (точка А) было не больше, чем расстояние L2 от центра до кончика носа (точка В): Рис. 12.6 8. Создай спрайт Приз. Он может быть любой формы — всё равно мы потом сделаем его невидимым. 105
9. Уменьши его, если надо, и расположи на сцене там. где будет финиш (точка №2 на рис. 12.5). 10. Условие касания Котёнком цвета приза замени на условие ка- сания спрайта Приз. 11. Протестируй программу: «правильно» ли реагирует Котёнок на касание стен лабиринта и приза? Если нет, устрани ошибки. Теперь у нас всё готово для того, чтобы «выключить свет* в лабиринте или завязать Котёнку глаза. 12. Закрась фон и спрайты Стена и Приз одинаковым серым цветом. 13. Запусти игру и попробуй теперь добраться до приза! 14. Как вариант, можно опустить Котёнку перо — пусть оставляет за собой след. 15. Сохрани все изменения в проекте. Проект «Тренажёр для памяти» Можно в самом начале игры на мгновение осветить лабиринт — тогда проект можно будет использовать как тренажёр для памяти. 1. Создай копию проекта. 2. Активируй сцену. 3. Создай для неё следующую программу (рис. 12.7). когда нажат изменить эффект прозрачность • на i ждать секунд изменить эффект прозрачность » на Рис. 12.7 4. Запусти тренажёр и проверь свою память. Можно создать не- сколько вариантов лабиринта (фонов сцены). 5. Как это сделать, чтобы при этом не менять скрипт для Котёнка? 6. Сохрани проект. 106
13. Случайности по заказу Мы постоянно сталкиваемся с непредсказуемыми событиями. Мы не знаем заранее, сколько времени придётся ждать автобус на остановке, сколько человек окажется перед нами в очереди в мага- зине, в платье какого цвета будет одета первая встреченная нами девушка... Чтобы моделировать подобную непредсказуемость, в Скретче используется датчик случайных чисел. Получение случайного числа подобно игре в лотерею: из мешка с одинаковыми по форме бочонками наугад вытаскивается один. Датчик случайных чисел находится в ящике Операторы. Он может выдать любое из чисел, лежащих в промежутке между ука- занными начальным и конечным значениями, включая значения границ (рис. 13.1): выдать случайное от Рис. 13.1 1. Открой ящик Операторы. 2. Щёлкни по датчику выдать случайное число. Каков результат? 3. Проведи серию опытов и заполни таблицу: № опыта Случайное число 1 2 3 4 5 6 7 8 9 1. Проанализируй результат: есть ли какая-нибудь закономерность в полученном ряду чисел? Если есть, то какая? 107
Обрати внимание: блок можно вставить в любой блок с округ- лым окошком, содержащим числовой параметр. Значения границ можно менять — важно только, чтобы первое число отличалось от второго. Иначе какая же это случайность? Покажем его использование на примерах. Разноцветный экран 1. Закрась фон в жёлтый цвет. 2. Используя блок установить эффект цвет из ящика Внешность, создай команду для сцены (рис. 13.2): изменить эффект цвет * на выдать случайное от Рис. 13.2 3. Задай многократное повторение этой команды. 4. Чтобы у зрителя не рябило в глазах, добавь в программу коман- ду ждать 1 секунду. 5. Запусти программу и насладись полученным эффектом. Аналогичный скрипт можно создать и для Весёлого Котёнка. 6. Чтобы не пришлось писать его заново, перетяни мышкой скрипт для сцены в изображение Котёнка на перечне. 7. Что нужно изменить в программе для Котёнка, чтобы смена его цвета происходила не одновременно со сменой цвета фона? 8. I Гомепяй в программе для Котёнка эффект «цвет, на другие. 9. Придумай подходящее название для понравившегося варианта: Хаотичное движение 1. Выбери любой спрайт из папки Фантастика. 2. Задай этому существу многократную программу повторения сле- дующих команд: 1) идти случайное число шагов (от 10 до 50); 2) повернуться на случайное число градусов (от 1 до 360). 3. Измени скрипт так. чтобы существо не только двигалось, но и оставляло после себя след случайного цвета. Какие нужно до- бавить команды? 108
1)____________________________________________________________ 2)_____________________________________________________________ » 4. Какую ещё команду нужно добавить в программу, чтобы суще- ство никогда не выпадало из поля нашего зрения? 5. Добавь её. 6. Придумай подходящее название для получившегося проекта: 7. Сохрани проект. Игра «Кошки-мышки» Кто не знает игру ♦Кошки-мышки»! Пополним нашу коллек- цию игр ещё одной: управляемая стрелками кошка должна поймать непредсказуемую мышку... 1. Создай новый проект. 2. Создай спрайт Мышка (вид сверху). 3. Создай для неё скрипт, аналогичный скрипту для существа из предыдущего проекта. Только пусть Мышка не оставляет следов! 4. Создай спрайт Кошка, вид сверху. 5. Создай скрипт для Кошки, управляемой с помощью стрелок. 6. Добавь в скрипт для Кошки команду: как только она коснётся Мышки, мяукнуть и остановить программу. 7. Добавь Мышке ещё один костюм в виде обглоданных косточек. 8. Добавь в её скрипт команду: если она коснётся Кошки, поме- нять костюм. 9. Задай начальные положения: 1) для Кошки — в центре экрана; 2) для Мышки — где-то подальше от Кошки, например в правом верхнем углу. 10. Какую ещё команду, определяющую исходное состояние, нужно добавить в скрипт для Мышки? 11. Добавь её. 109
12. Запусти игру. Если Кошка бегает слишком медленно, увеличь ей длину шага. 13. Сохрани проект. Проект «Вырастим цветник» Пусть Чтобы из ящика вся наша Сцена покроется пёстрыми цветами! решить эту задачу, Перо. воспользуемся командой печать Обрати внимание: команда бражение) спрайта на фоне. оставляет оттиск (изо- 1. Создай новый проект. 2. Нарисуй спрайт Цветок. Например, такой, как на рис. 13.3. Рис. 13.3 3. Создай для него следующую программу многократного повто- рения: 1) перейти в случайное положение; 2) установить цвет в значении случайного числа от 0 до 500; 3) установить случайный (от 10 до 30) размер; 4) оставить оттиск (команда печать). 4. Запусти проект для выявления и устранения недочётов. 5. Сохрани проект. Вопросы 1. Что в реальной жизни люди используют в качестве датчика случайных чисел? Приведи примеры. ♦ 110
2. Составь скрипт, который рисовал бы с равным интервалом 10 изображений Весёлого Котёнка: 3. Что нужно изменить в скрипте, чтобы изображения были на случайном расстоянии, но не ♦наступали на ноги» друг другу и не удалялись друг от друга дальше, чем на 100 шагов? 1. Проверь свою догадку на компьютере. 111
14. Другие возможности запуска спрайтов До сих пор мы активировали спрайты и в целом проекты с помощью запускающего блока когда нажат Но бывают задачи, когда удобнее каждый спрайт запускать по отдельному сигналу — например, щелчком по нему мыши. Либо назначать одному и тому же спрайту разные действия — в зависимости от разных сигналов. В Скретче есть и такие возможности. 1. Открой ящик Контроль. 2. Найди и перенеси в область скриптов блок когда спрайт нажат Как видно по форме блока, он. так же как и блок когда нажат относится к начальным (запускающим) блокам. Блок когда спрайт нажат приводит в исполнение связанный с ним скрипт щелчком мыши по спрайту, что открывает простор для ин- терактивного (двустороннего) общения в режиме презентации. По- кажем это на примерах. Проект «Переодевалки» Создадим своеобразный манекен, который сможет по нашему желанию переодеваться в разную одежду, демонстрируя сочетания различных её видов. 1. Создай новый проект. 2. Создай спрайт Человек без Одежды — нарисуй или импортируй из Коллекции. Например, спрайт Harper (рис. 14.1). 3. Сделай его копию. Она пригодится нам для создания гардеро- ба — точно по размеру Человека. 4. Назови копию спрайта Одежда. 112
5. Нарисуй на человеке любую одежду (например, юбку с кофтой), а самого человека удали (рис. 14.2). Рис. 14.1 Рис. 14.2 6. Создай ещё два спрайта — Головной Убор и Обувь (рис. 14.3): Рис.14.3 7. Наложи спрайты Головной Убор, Одежда и Обувь на спрайт Че- ловек. 8. Уменьши или увеличь, если нужно, созданные спрайты, чтобы они стали по размеру Человека без Одежды (рис. 14.4). 9. Для каждого спрайта создай несколько костюмов. Например, для спрайта Обувь — костюмы Сапоги, Кеды, Туфли и т. д. 10. Для каждого из спрайтов, относящихся к гардеро- бу, создай скрипт: когда щёлкнут по спрайту, надеть следующий костюм. 11. Перейди в режим презентации. 12. Щёлкая по спрайтам. убедись в том, что созданного нами человека можно переодеть в любые сочетания одежды. 13. Сколько различных сочетаний одежды возможно в екте? ____________________________________________ Рис.14.4 твоём про- 113
14. На сколько изменится это число, если ты добавишь в проект ещё одну пару обуви?________________________________________.• 15. Сохрани проект. Проект «Не верь глазам своим!» В Скретче удобно демонстрировать и разоблачать оптические иллюзии. Оптическая иллюзия — это ошибка в зрительном восприятии. Взгляни на рис. 14.5: какой ряд ромбов темнее — верхний или нижний? Рис. 14.5 Большинство ответит, что нижний. Но на самом деле ромбы в каждом ряду одинаковые. А ошибка цветового восприятия объясня- ется тем, что ромбы окрашены градиентной заливкой: верх темнее низа. 1. Чтобы разоблачить иллюзию, начни новый проект. 2. Создай фон такой, как на рис. 14.5. Для этого (рис. 14.6): а) нарисуй квадрат; б) разверни его; в) вытяни так, чтобы он перестал быть квадратом; г) залей ромб градиентной вертикальной заливкой от белого к чёрному; д) сделай копии ромба и замости ими всё пространство фона: д) б) Рис. 14.6 114
3. Создай спрайт Ромб, повторив действия, описанные в п. 2а-д. 4. Установи центр костюма спрайта Ромб в его геометрическом центре. 5. Составь скрипт для спрайта Ромб: • когда нажат флажок, спрятаться; • многократное повторение следующей проверки (рис. 14.7): показаться перейти в указатель мыши ▼ Рис.14.7 6. Запусти проект. 7. Щёлкни по сцене. Появился Ромб? 8. Совмести Ромб с любым ромбом из нижнего ряда. 9. Выделяется ли Ромб среди остальных ромбов? 10. Совмести Ромб с любым ромбом из верхнего ряда. 11. Выделяется ли Ромб теперь? _____________________________ Если ответы на оба вопроса «нет», значит, различие в оттенках цвета нижнего и верхнего рядов — кажущееся. 12. Проверь иллюзию на своих друзьях. 13. Сохрани проект. Иногда бывает нужно, чтобы спрайты до поры до времени были скрыты, а появлялись на сцене по особому приглашению. В этом случае не подойдёт ни общезапускающий блок когда нажат фла- жок, ни блок когда спрайт нажат. Ведь если персонаж изначально не виден или если он маленького размера, то щёлкать по нему за- труднительно. Поэтому в Скретче предусмотрена возможность запу- скать спрайты нажатием какой-либо клавиши на клавиатуре. Для этого используется блок Контроль. когда клавиша пробел * нажата из ящика 115
Продемонстрируем поочерёдный вызов на сцену изначально скрытых персонажей на примере иллюстрации начала сказки о Дюймовочке. Проект «Дюймовочка» Жила-была женщина, и не было у неё детей. Пошла она од- нажды к колдунье, и та дала ей ячменное зерно. Посадила женщи- на зерно в цветочный горшок, и вдруг на её глазах из него вырос красивый цветок. Когда он раскрылся, то внутри него оказалась маленькая девочка... 1. Создай новый проект. 2. Создай 5 спрайтов — Женщина, Колдунья, Горшок, Дюймовоч- ка и Цветок в двух костюмах — Бутон и Раскрывшийся цветок. 3. Перемести центр костюма в спрайте Цветок в основание стебля (рис. 14.8): Рис. 14.8 4. Создай три фона: 1) заставка с названием проекта; 2) сад женщины; 3) дом колдуньи. 5. Для всех спрайтов создай скрипты, которые зададут начальное состояние проекта: когда нажат флажок, спрятаться. ( вяжем смену декораций с клавишами 1-3: 1 — сад женщины, 2 — дом колдуньи, 3 — снова сад, где женщина будет выращивать цветок. 6. Заполни расписание появлений и исчезновений спрайтов на сце- не (« + ♦ — виден, *-♦ — не виден): 116
№ клавиши Фон Женщи- на Колдунья Дюймо- вочка Цветок Горшок 1 2 * 2 3 4* 3 2 7. В соответствии с таблицей составь скрипты появления и исчез- новения спрайтов. Например, для Колдуньи их будет два: 1) когда клавиша 1 нажата, появиться; 2) когда клавиша 3 нажата, исчезнуть (спрятаться). 8. Создай скрипты для фона согласно расписанию (см. таблицу выше): 0) когда нажат флажок, перейти к Заставке; 1) когда клавиша 1 нажата, перейти к фону Сад; 2) когда клавиша 2 нажата, перейти к фону Дом колдуньи; 3) когда клавиша 3 нажата, перейти к фону Сад. 9. Для Цветка создай программу роста и распускания (рис. 14.9): когда клавиша нажата изменить костюм на бутон установить размер показаться повторить ждать 10 раз секунд изменить размер на изменить костюм на раскрывшийся цветок Рис.14.9 117
10. Какие команды в представленном на рис. 14.9 скрипте опреде- ляют рост Цветка?_____________________________________________ 11. Для чего нужна команда ждать 1 секунду в теле цикла? 12. Если нужно, уменьши спрайт Цветок. 13. Через какое время после нажатия клавиши 3 должна появиться Дюймовочка?__________________________________________________ (Подсказка: проанализируй скрипт роста и распускания Цветка.) 14. Расположи спрайты на сцене там, где они должны будут по- явиться. В том числе: • Цветок — в Горшке; • Дюймовочка — на месте распустившегося бутона. 15. Перейдя в режим презентации, запусти проект. 16. Нажимая поочерёдно на клавиши 1, 2, 3, расскажи начало сказки о Дюймовочке. 17. Сохрани проект. При желании можешь добавить персонажам костюмы, заста- вить их двигаться и говорить... Вопросы 1. Может ли у одного спрайта быть несколько скриптов? (Если да, то как спрайт «будет знать», по какому из них ему действо- вать? Если нет, то почему?) _________________________________ 2. Можно ли изменить скрипты в’ проекте «Дюймовочка» так, чтобы все спрайты запускались с помощью команды когда щёлкнут по зелёному флажку? (Если да, то как? Если нет, то почему?) 3. Можно ли изменить программу в проекте «Переодевалки» таким образом, чтобы человек на раз был одет в случайную сцене при запуске проекта каждый комбинацию одежды и обуви? (Блок когда спрайт нажат при этом не использовать.) Если да, то создай копию проекта и проведи в ней необходимые изменения. Если нет, объясни почему. 118
4. Почему центр костюма у спрайта Цветок нельзя перенести в другое место? __________________________________________________ 5. Можно ли заменить скрипт для спрайта, управляемого стрел- ками, на четыре скрипта, запускаемые с помощью блока когда клавиша пробел » нажата Если да, замени. Если нет, то почему?___________________________________________________ 119
15. Самоуправление спрайтов Вспомни проект «Дюймовочка*. В нём нашей задачей было рассказать сказку, и мы сами — с помощью управляющих кла- виш — регулировали ход рассказа (смену декораций, появление на сцене новых персонажей и пр.). А теперь представь себе, что ту же сказку мы хотим увидеть как готовую историю. В этом случае но- вые персонажи и фоны должны появляться и меняться без нашего участия. В Скретче есть и такая возможность. Это достигается с помо- щью передачи сигналов. Один объект (спрайт или сцена), совершив некоторые действия, посылает сигнал другим объектам о том, что, мол, пора и вам вступать в игру. А те воспринимают этот сигнал так же, как щелчок по зелёному флажку или нажатие клавиши, и начинают выполнять связанные с ним команды. Первый объект является передатчиком. второй — приёмником. Передача сигналов 1. Открой ящик Контроль. 2. Найди в нём два блока - передать и когда я получу (рис. 15.1): передать сообщение! когда я получу сообщение! * Рис. 15.1 Именно они позволяют передатчику управлять действиями приёмника. 3. Щёлкни по треугольнику в окошке блока передать — появится надпись: «Новое сообщение». 4. Щёлкни по ней — откроется окно, приглашающее ввести назва- ние сигнала (рис. 15.2): 120
Новое сообщение Новое имя сообщения Отменить Рис. 15.2 Название нужно для того, чтобы отличить один сигнал от дру- гого. Ведь один и тот же передатчик может отправить, а один и тот же приёмник — получить несколько сигналов. Проект «Лампа» В тёмной комнате находится лампа с кнопкой. Щелчок по кноп- ке заставляет лампу поочерёдно то загораться и освещать простран- ство вокруг, то выключаться. 1. Создай новый проект. 2. Создай спрайт Кнопка (можно импортировать Button из папки Things). 3. Создай спрайт Лампа — в двух костюмах — Горит и Выключе- на (рис. 15.3): КОСТЮМ2 141 х137 Рис. 15.3 121
4. Создай два фона для сцены — Тёмный и Светлый (рис. 15.4): Рис. 15.4 5. Создай для Кнопки скрипт (рис. 15.5): когда спрайт нажат I 1 ^ТЕ1^^^^ИИПВ1И|ВЯ1М1^ЯВМ^МВВу ив ВМИЯИВИВИИВИ1 передать щелчок * * -ж. -Wk » . z Рис. 15.5 6. Создай для Лампы скрипт (рис. 15.6): когда я получу щелчок * следующий костюм Рис. 15.6 7. Аналогичный скрипт создай для сцены. 8. Перейди в режим презентации и убедись в том, что щелчок по кнопке включает и выключает лампу. 9. Сохрани проект. Проект «Диалог» Чтобы лучше понять механизм обмена сигналами, представь себе двух собеседников, говорящих по рации: когда один говорит, другой может только слушать. Для того чтобы услышать ответ на 122
свой вопрос, спрашивающий должен послать отвечающему сиг- нал — например, произнести: «Отвечай!». Без этого сигнала отве- чающий будет либо молчать, либо говорить невпопад — тогда, ког- да спрашивающий ещё говорит сам и, значит, не может услышать ответ... 1. Создай новый проект. 2. Создай два спрайта — Вопрошающий и Отвечающий (это могут быть и животные, и фантастические существа). 3. Создай для Вопрошающего скрипт — когда флаг нажат: • сказать (говорить в течение 2 секунд): «Привет!»; • передать сигнал «Ответь». 4. Создай для Отвечающего скрипт — когда я получу «Ответь»: • сказать: «Привет! Как дела?»; • послать сигнал «Скажи». 5. Создай для Вопрошающего ещё один скрипт — когда я получу «Скажи»: • сказать: «Хорошо! А у тебя?» • послать сигнал «Ответь 2». Примечание. Когда сигналов несколько, нужно щёлкнуть по бело- му треугольнику в окошке блока когда я получу и выбрать нужный из списка. 6. Создай для Отвечающего ещё один скрипт, аналогичный создан- ному в п. 3, с ответом на вопрос. 7. Запусти проект и убедись в том, что между спрайтами получил- ся диалог. 8. Что нужно изменить в программе, чтобы диалог стал, пусть и бессмысленным, но бесконечным? 9. Проверь свою догадку на компьютере. 10. Сохрани проект. Вопросы 1. Подбери синонимы к слову «сигнал»: 2. Выбери из трёх определений слова «сигнал» то, что ближе по смыслу к команде передать в Скретче: а) передаваемый импульс пли группа импульсов электромагнит- ной энергии (в технике); б) разг. Первый, являющийся образцом для всех других печат- ный экземпляр книги, газеты и т.п.; сигнальный экземпляр; 123
в) перен. Предупреждение, сообщение о чём-либо (обычно неже- лательном). 3. Рассмотри таблицу и заполни пустые поля: Сигнал Источник Приёмник «На помощь!» Человек Звонок Будильник Команда «Фас!» Цветок Бабочка Человек Кнопка выключателя Кнопка выключателя Лампа Кнопка — передатчик сигнала от человека лампе 124
16. Вернёмся к старым проектам Теперь, когда ты освоил механизм самоуправления в Скретче, самое время вернуться к нашим старым проектам — ♦Лабиринт» и «Кругосветное путешествие Магеллана» — и вдохнуть в них новую жизнь... Проект «Лабиринт с потайными ходами» Когда лабиринт очень сложный и запутанный, и Котёнку то и дело приходится начинать его прохождение сначала, то невольно появляются мысли: вот бы в этом лабиринте были потайные ходы, по которым можно было бы сократить путь к цели!.. Конечно, на то они и потайные, что открыты не всегда и не- долго, а только тогда, когда Котёнок сделает какое-нибудь полезное дело. Например, поймает мышь... 1. Создай копию проекта «Лабиринт». 2. Создай ещё один спрайт — Мышь, вид сверху (как, например, в проекте «Кошки-мышки»). Мышь будет появляться в случайном месте сцены на случайное время и исчезать, чтобы снова появиться в другом. 3. Заполни таблицу соответствия написанных выше слов и команд Скретча: Действие Команда Примечание появиться случайное место Указать диапазон изменения ждать случайное время Указать диапазон изменения исчезнуть снова 4. Создай скрипт для Мыши. 5. Создай для сцены копию фона — Проходы.
6. Добавь на нём дополнительные ходы. Например, так: 7. Добавь в скрипт для Котёнка ещё одну команду: если коснется спрайта Мышь, передать сигнал «Поймал!* *. 8. Создай для Мыши ещё один скрипт: когда я получу «Поймал!*, спрятаться. 9. Создай для Сцены два скрипта: 1) если нажат флажок, перейти к фону Лабиринт; 2) когда я получу «Поймал!», • перейти к фону Проходы; • ждать (число секунд подбери самостоятельно); • вернуться к фону Лабиринт. 10. Создай две копии спрайта Мыши — Мышь-2 и Мышь-3. 11. Добавь в скрипт для Котёнка ещё две команды, аналогичные созданным в п. 7, каждая из которых приводится в действие при условии касания им Мыши-2 и Мыши-3 соответственно. 12. Можно ли Котёнку при касании разных мышей посылать один и тот же сигнал? Если нет, то почему? 13. Нужно ли добавлять скрипты для сцены? Если нет, то почему? Если да, то внеси изменения в проект: Чтобы избежать запоминания игроком потайных ходов, создай ещё несколько копий лабиринта с разными вариантами дополни- тельных проходов. 14. Какие изменения нужно внести в проект, чтобы каждый раз в игре вариант проходов был случайным? 15. Запусти игру и проверь: • появляются ли дополнительные проходы при касании Котён- ком Мыши? • может ли ими воспользоваться Котёнок? • исчезают ли дополнительные проходы через определённое время? 126
16. Если ответы па предыдущие вопросы отрицательные, то найди и исправь ошибки. 17. Попробуй провести Котёнка к призу по более короткому пути. 18. Сохрани проект. Самостоятельная работа 1. Создай копию проекта * Дюймовочка». 1) Произведи в нём необходимые изменения, чтобы персонажи сказки, а также декорации «сами знали», когда им появляться на сцене. 2) Как увеличить или уменьшить скорость показа сказки? Какая команда за это «отвечает»? ______________________________ 2. Создай копию проекта «Лабиринт» под названием «Многоуров- невый лабиринт». 1) Добавь в проект новые, более сложные фоны-лабиринты. 2) Измени скрипты так, чтобы при достижении финиша одного лабиринта происходил переход на новый уровень игры, т. е. на старт следующего по сложности лабиринта. 127
17. Датчики Часто в проектах, особенно в играх, бывает нужно видеть ту или иную характеристику проекта. Например, истекающее время, за которое спрайт должен успеть совершить те или иные действия... Узнать интересующие нас характеристики в Скретче можно не- сколькими способами. 1. Рассмотри содержимое инструментального ящика Движение. 2. Найди блоки, перед которыми есть окошко (рис. 17.1): положение х Рис. 17.1 3. Щёлкни по окошкам перед ними. Что изменилось на сцене? Мы создали датчики. Датчик — это прибор (физический или виртуальный), который показывает состояние некой изменяющейся величины. 4. Каковы показания созданных нами датчиков? 5. Перемести Котёнка и поверни его на произвольный угол. Изме- нились ли при этом показания датчиков? 6. Дважды щёлкни по любому датчику на сцене. Как изменился его вид?_________________________________________________ 7. Щелчком мыши сними «галочки» в окошке перед блоками, ♦ породившими» датчики на сцене. Очистилась ли сцена? 128
8. Просмотри содержимое других инструментальных ящиков. Пе- речисли параметры, которые можно вывести на экран: 9. Создай датчик таймер (ящик Сенсоры). Как ты думаешь, что он показывает?_______________________________________________ 10. Какие характеристики сцены можно вывести на экран? Создание информатора В Скретче все блоки, не относящиеся к командам и запускаю- щим блокам, можно превратить в датчики, если спрайту, чьи ха- рактеристики нас интересуют, дать команду сказать (параметр). Пример показан на рис. 17.2. сказать текущий час ▼ Рис. 17.2 Результатом первой команды (см. рис. 17.2) будет число, а ре- зультатом второй — ответ «да» (true) или *нет» (false) (рис. 17.3): 18 false Рис. 17.3 1. Что нужно добавить к команде сказать, чтобы информатор пре- вратился в датчик, т. е. постоянно отслеживал в реальном вре- мени все изменения параметра? ________________.__________ 129
2. Создай два спрайта. 3. Определи расстояние между ними: 4. Перемести один из спрайтов по сцене и снова определи рассто- яние между ними: _______________________________________________ 5. Определи размеры обоих спрайтов: и 6. Какой можно сделать вывод? _________________________________ Самый простой способ узнать значение того или иного параме- тра — это щёлкнуть по блоку с его названием. Рядом появится ре- зультат (рис. 17.4): таймер 579 975 Рис. 17.4 7. Анализируя форму блоков, определи, к какой категории (дат- чик, сенсор, команда, конструкция, запускающий блок) они от- носятся: Категория Блок < когда громкость * показать переменную моя переменная * □ Блоки датчиков можно вставлять в блоки с параметрами. громкость звука мышь нажата? 130
8. Составь следующие команды (рис. 17.5): Рис. 17.5 9. На сколько шагов переместится спрайт и на какой угол он по- вернётся? _____________________________________________________ Проект «Презентация» Презентация представляет собой последовательность сменяю- щих друг друга слайдов (или фонов). Презентации используются в качестве рекламных роликов, электронных каталогов, обучающих и тестовых программ. Они удобны, красочны, наглядны. Для соз- дания презентаций существуют специальные программы. Однако и в среде Скретч можно делать презентации. Их содержание нас сейчас не слишком волнует. Главное — на- учиться создавать механизм листания слайдов. 1. Создай новый проект. 2. Импортируй из Коллекции три случайных фона (кнопка Сюр- приз). 3. Добавь к ним фон с названием презентации — «Фоны Скретча» и перемести его в начало списка фонов. 4. Добавь ещё один фон с надписью «Конец». Всего должно полу- читься пять фонов. 5. Выведи на экран датчик номера фона — в развёрнутом или свёрнутом виде (рис. 17.6): номер фона ЮЦ или Рис. 17.6 6. Перейди на вкладку Фоны и, щёлкая по разным фонам, убедись в том, что показания датчика меняются. 131
7. Создай для сцены скрипт, согласно которому показ презентации (команда когда флаг нажат) всегда будет начинаться с показа фона № 1. 8. Создай спрайт Кнопка со стрелкой. Например, такой, как на рис. 17.7. Рис.17.7 9. Установи Кнопку в правом нижнем углу сцены. 10. Используя команды передачи и получения сигналов, создай для Кнопки и сцены скрипты, в соответствии с которыми нажатие на Кнопку будет приводить к смене фона. 11. Перейди в полноэкранный режим и запусти презентацию. 12. Щёлкая по Кнопке со стрелкой, просмотри презентацию от на- чала до конца. 13. Какой фон отразится на сцене, если после просмотра фона со словом «Конец» нажать на Кнопку со стрелкой? 1-1. Добавь в скрипт для сцены условие перехода к следующему фону — если номер фона меньше 5 (рис. 17.8): Рис. 17.8 15. Запусти проект и убедись в том. что перехода с последнего фона на другие фоны не происходит. Однако в презентациях бывает нужен и обратный порядок ли- стания. Обеспечим мы и его. Для этого создадим ещё одну кнопку: нажимая на неё, мы будем переходить к предыдущему фону. 16. Создай копию спрайта Кнопка. 17. В режиме редактирования горизонтально отрази рисунок — так, чтобы стрелка стала направлена в противоположную сторону. 132
18. Установи Кнопку-2 в левом нижнем углу сцены. 19. Нужно ли вносить изменения в скрипт для Кнопки-2? Если да. то какие? Если нет; то почему? 20. Добавь ещё один скрипт для сцены, аналогичный созданному в п. 7 и 11. 21. Как изменится в нём условие перехода на предыдущий фон? 22. Для перехода к предыдущему фону создай команду (рис. 17.9): переключить фон на фон номер Рис. 17.9 23. Блок из какого инструментального ящика нам понадобится для создания разности (см. рис. 17.9)? 24. Перейди в режим презентации и запусти проект. 25. Убедись в том. что Кнопка-2 позволяет листать фоны в обрат- ном порядке, вплоть до фона № 1. 26. Добавь на каждый слайд (фон) сверху заголовок, а внизу — не- большой комментарий к изображению — например, о том. в ка- ком проекте данный фон можно использовать. Наша презентация готова! 27. Сохрани проект. Вопросы 1. Для чего нужны датчики? 2. Какие датчики есть в твоём доме? 3. Можно ли считать часы датчиком? Если да, то какой характе- ристики? Если нет, то почему? 4. Чем отличается датчик от информатора? 5. Можно ли использовать датчики в блоках с параметром? 133
6. Какие изменения нужно внести в проект « Презентация чтобы комментарии к фонам были не нанесены на них, а появлялись в виде мыслей видимого или невидимого комментатора? Самостоятельная работа Характеристика какого параметра в проекте «Многоуровневый лабиринт» может служить датчиком уровня сложности? Дополни проект «Многоуровневый лабиринт» датчиком уровня сложности. 134
18. Переменные Итак, назначение датчиков отслеживать состояние некой из- меняющейся в проекте величины. Однако часто возникают задачи, в которых для рассматриваемого параметра нет готового блока. Напри- мер, если бы в проекте * Лабиринт с потайными ходами» мы зада- лись бы вопросом: «Сколько мышей поймал Котёнок за время про- хождения лабиринта?», то мы не нашли бы подходящего датчика... Для того чтобы решить такую задачу, нам потребовалось бы со- здать новый датчик — количество мышей. К счастью, в Скрет- че есть возможность самостоятельно создавать новые датчики. По- скольку, как уже было сказано, их содержимое — меняющаяся величина, такие самостоятельно созданные датчики называют пе- ременными. 1. Открой ящик Переменные (рис. 18.1): Переменные Создать переменную моя перемени ап задать моя переменная • О на □ показать переменную моя переменная скрыть переменную моя переменная • Создать список Рис. 18.1 Как видишь, в нём есть заготовка для одной переменной. 135
2. Какое у переменной имя?_________________________________ Ты можешь использовать эту переменную* а можешь создавать новые. Для этого выполни следующие действия. 3. Щёлкни по кнопке Создать переменную. 4. В появившемся окне введи имя будущей переменной (рис. 18.2). Например, количество. Нажми ОК. Новая переменная новой переменной • Для всех О Только для этого спрайтов спрайта ок Рис. 18.2 5. Какие блоки добавились в ящике Переменные? 6. Чему равно значение созданной переменной? 7. Чтобы изменить значение переменной, используй команду задать количество ▼ значение О 1. заменив число в окошке на любое другое. 8. Активируй команду. Чему теперь равно значение переменной? 9. Активируй команду изменить количество * на Чему теперь равно значение переменной? 10. Какая разница между командами изменить количество на □ и задать количество * значение i 136
11. Убери датчик количество с экрана (не удаляя саму переменную). 12. Какая команда из содержащихся в ящике Переменные равно- сильна предыдущему действию? 13. Удали переменную количество, щёлкнув правой кнопкой мыши по блоку с её именем (рис. 18.3): Переменные Создать переменную задать количество • Переименовать переменную Удалить переменную количество" Рис. 18.3 Теперь покажем, как переменные можно использовать в про- ектах. Проект «Мухоловка» Создадим проект, в котором летающие мухи будут попадаться в мухоловку, а счётчик будет подсчитывать их количество (рис. 18.4). Рис. 18.4 137
1. Создай новый проект. 2. Создай спрайт Муха. 3. Создай фон Мухоловка — небольшой светлый круг на тёмном фоне. 4. Создай переменную-счётчик Мухи. 5. Создай скрипт для спрайта Муха, запускающийся по зелёному флажку: 1)обнулить счётчик; 2) многократно повторять: • перейти в случайное положение; • если коснулся круга на фоне, то о оставить оттиск; о увеличить значение переменной Мухи на 1. 6. Запусти проект и проверь: 1) остаётся ли оттиск мух на Мухоловке? Если нет, возможно, ты указал неверный цвет в сенсоре; 2) увеличивается ли значение переменной? Если нет, то проверь, имя какой переменной указано в команде 3) соответствует ли количество оттисков на Мухоловке значению переменной? Если нет, возможно, ты забыл добавить в скрипт команду очистки графики. 7. Исправь ошибки. 8. Сохрани проект. Игра «Голодный кот» Создадим игру, в которой кот, управляемый стрелками, бу- дет ловить мышей. Переменная-счётчик будет подсчитывать ко- личество пойманных мышей за отведённое время — например, за 20 секунд. По окончании охоты кот в зависимости от показаний счётчика будет оценивать своё состояние сытости (голоден, сыт, объелся). Мыши, как в проекте «Лабиринт с потайными ходами*, будут появляться в случайных местах и исчезать через случайные промежутки времени. 1. Создай новый проект. 2. Создай переменную-счётчик мыши. 3. Создай спрайт Кот, управляемый стрелками. 138
4. В скрипте для Кота замени блок всегда на конструкцию Условие в него вставим позже. 5. Создай спрайт Мышь, появляющийся в случайное время в слу- чайном месте (см. гл. 16). Спрайт Мышь, хоть и явление разных мышей в Ещё нам понадобится будет один, но сможет имитировать по- разное время. знать время, прошедшее с начала игры. (ящик Сенсоры). В Скретче уже есть такая 6. Добавь в скрипт для Кота команды, задающие начальные зна- переменная — таймер чения используемых переменных: 1) задать переменной мыши значение 0 (говорят: обнулить счётчик): 2) сбросить таймер. 7. Добавь в тело цикла, описывающего поведение Кота, команды, выполняемые при условии касания спрайта Мышь (рис. 18.5): ~-- если касается Мышь • ? .то Ла V И» передать поймал * Рис. 18.5 Обрати внимание: если Кота на время не задержать, то значе- ние счётчика увеличивается больше, чем на 1. 8. Как ты думаешь: кому и зачем Кот передаст сигнал «поймал»? Теперь вернёмся к скрипту для Кота. 139
9. Встань в конструкцию цикла условие, при котором действия Кота прекращаются (когда истекут 20 секунд). Проверь, какое из двух условий, изображённых на рис. 18.6, правильное? таймер Рис. 18.6 таймер 10. Добавь в скрипт для Кота команды оценки его сытости: • если значение счётчика меньше 3. сказать «Я остался голо- ден!»; • если количество пойманных мышей от 3 до 6 — «Я наелся»; • если количество пойманных мышей больше 6 — *Я переел!». 11. Какие числа нужно вставить в условие (рис. 18.7), при котором Кот скажет: «Я наелся»? Рис. 18.7 12. Добавь скрипт для Мыши: когда получу сигнал * Поймал», спрятаться. (Сравни со своим ответом в п. 7.) 13. Запусти игру для проверки всех трёх случаев (см. п. 9). 14. Сохрани проект. Проект «Стрельба из ружья» Переменные нужны не только как счётчики, но и как контейне- ры, содержимое которых доступно сразу всем объектам в проекте. Например, есть два спрайта — Ружьё и Пуля. Ружьё управля- ется стрелками и может менять угол поворота. А Пуля должна вы- летать из Ружья в том направлении, куда повёрнуто Ружьё. Рис. 18.8 140
1. Создай новый проект. 2. Создай фон — с полукругом внизу. Например, такой, как на рис. 18.8. Полукруг — это площадка, на которой будет установлено Ружьё. 3. Создай спрайт Ружьё в виде горизонтального отрезка. 1. Перемести центр костюма в его левый конец. 5. Создай переменную Направление полёта пули. Обрати внимание: у спрайта Ружьё есть датчик Направление, но его содержимое доступно только скрипту для Ружья. А нам нужно содержимое, общее для двух спрайтов — Ружья и Пули! 6. Создай скрипт для Ружья: Начальное положение: • в точке, совпадающей с центром полукруга: • в направлении вверх; Когда нажата стрелка вверх: • повернуть на 1 градус по часовой стрелке; Когда нажата стрелка вниз: • повернуть на 1 градус против часовой стрелки; Когда нажат пробел: • задать значение переменной Направление полёта пули, рав- ное значению датчика направление (рис. 18.9): задать направление полёта пули * значение направление Рис. 18.9 • передать сообщение «Пли!». 7. Активируй спрайт и проверь: • совмещён ли один конец Ружья с центром полукруга на сце- не? • разворачивается ли Ружьё при нажатии на стрелки вверх и вниз относительно центра полукруга? • меняется ли значение переменной Направление полёта пули после нажатия на клавишу Пробел? Если на все вопросы ты ответил «да», то переходи к работе над спрайтом Пуля. 8. Создай спрайт Пуля в виде круга того же цвета, что и Ружьё. 141
9. Уменьши Пулю так, чтобы её размер не превышал толщины Ружья. 10. Составь скрипт для Пули: Начальное положение: • в центре полукруга; Когда будет получено сообщение «Пли!*: • повернуться в направление, которое равно значению перемен- ной Направление полёта пули; • пролететь до края сцены. Для этого подбери число повторений и скорость полёта в конструкцию (рис. 18.10): Рис. 18.10 (Подсказка: вспомни, какая команда в конструкции отвечает за скорость.) • вернуться в исходную позицию (в центр полукруга). 11. Активируй проект. 12. Нажимая на клавишу Пробел, проверь: • вылетает ли Пуля из Ружья? • совпадает ли направление полёта Пули с углом поворота Ружья? • достаточно ли быстро летит Пуля? Если нет, увеличь её ско- рость; • долетает ли Пуля до края сцены? • не «залипает* ли Пуля на краю сцены? 13. Сохрани проект. Теперь, когда у нас есть стреляющее ружьё, можно создать про- ект Тир. Создадим его чуть позже. Вопросы 1. Может ли содержимое переменной мыши за всю игру в «Голод- ного кота» не измениться? Если да, то является ли она в таком случае переменной? Если нет, то почему? 142
2. Сохраняется ли где-нибудь прежнее значение переменной после команды изменить моя переменная * или задать моя переменная ▼ значение Если да, то где? _________________________________________ 3. Можно ли сказать, что параметр размер (ящик Внешность) яв- ляется переменной? Если нет, то почему? Если да, то какие ко- манды являются для него аналогом команд изменить моя переменная * на О и задать моя переменная значение 4. Приведи примеры величин, являющихся в среде Скретч посто- янными? _______________________________________________ 5. Координаты центра сцены являются в Скретче величинами по- стоянными или переменными? Если да, то чему они равны? Если нет, то как их изменить? ________________________— 143
19. Создаём новые команды В больших проектах, когда скрипты, описывающие поведение спрайта, становятся очень громоздкими, бывает полезно заменять отдельные группы команд их кратким описанием. Этот процесс аналогичен введению в речь нового термина: сначала даётся его определение (толкование), после чего его начинают употреблять — письменно или устно — наряду с другими словами. 1. Открой созданную ранее игру «Лабиринт*. Если ты уже подза- был, о чём она, то попробуй вспомнить по следующему скрипту (рис. 19.1): повторять всегда управление стрелками действия при касании стен действия на финише Рис. 19.1 Не правда ли, неё сразу стало попятно? Ну или почти всё. Однако ты можешь возразить, что такой скрипт не составлял! И команд розового цвета нет среди инструментов! А единственный ящик розового цвета — Другие блоки — пуст! Это значит, что этот ящик мы наполним сами новыми коман- дами. 144
2. Для этого перейди в раздел Другие блоки Создать блок. Откроется окно (рис. 19.2): и нажми кнопку Рис.19.2 3. Придумай ему название, впиши его в окошко блока и нажми ОК. Если ты всё сделал правильно, то в разделе Другие блоки по- явится новая команда, а в области скриптов — новый запуска- ющий блок (рис. 19.3): определить название блока Рис. 19.3 Чтобы новую команду (блок) можно было использовать, её со- держание нужно определить (объяснить). Например, блоки началь- ное положение и действия на финише могут выглядеть так, как показано на рис. 19.4. 145
определить начальное положение определить действия на финише Рис.19.4 Таким образом, один большой скрипт, описывающий поведение спрайта, заменяется кратким, составленным из имён созданных блоков, но дополняется новыми скриптами, описывающими дей- ствия спрайта в отдельных ситуациях. Такое представление программы называется её структурирова- нием, новые блоки — подпрограммами. А скрипт, составленный из имён подпрограмм, будем называть основным. Каждая подпрограмма, так же как и любая команда в Скретче, может быть активирована отдельно, что облегчает поиск ошибок и отладку всей программы. 4. Создай ещё два новых блока для проекта «Лабиринт» — управле- ние стрелками и действия при касании стен — самостоятельно. 5. Измени скрипт, описывающий действия Кота, используя новые блоки. 6. Проверь, что Кот, как и прежде: 1) управляется стрелками; 2) взрывается при касании стенок лабиринта; 3) награждается, дойдя до финиша. 7. Сохрани проект. Преимущества структурированной программы: • облегчение её чтения и понимания: • возможность многократного использования готовых блоков: • упрощение внесения изменений в программу. 8. Определи, скрипт к какому проекту из созданных тобой ранее мог бы выглядеть так, как на рис. 19.5. 146
нажаг Плыть к Рио-дс Жансиро Открыть Магелланов пролив В Плыть через Тихим океан ^^В ' Плыть к мысу Доброй Надежды Домой ЩМН Рис. 19.5 9. Открой этот проект и преобрази по заданному образцу. 10. Сохрани проект. Проект «Бесконечный фон» Во многих компьютерных играх персонаж, управляемый стрел- ками, путешествует по безграничному фону, встречая на своём пути неожиданные препятствия или, напротив, обнаруживая интересные находки. В Скретче фон, как ты знаешь, ограничен рамками сцены. Од- нако в наших силах сделать его практически бесконечным. Для этого нам придётся заменить фон спрайтами, изображающими фон. И привязать их движение к нажатию стрелок: стрелка вправо бу- дет смещать спрайты фона влево, а стрелка влево — вправо. 1. Создай новый проект. 2. Создай фон — дорога вдоль нижнего края сцены, голубое небо. Можешь добавить ещё что-то по своему усмотрению — главное, чтобы весь фон был однородным. 3. Создай скрипт для Весёлого Котёнка: • при нажатии стрелки вправо он будет поворачиваться напра- во и менять костюм: 1-17
• при нажатии стрелки влево он будет поворачиваться налево и тоже менять костюм. Как видишь, наш Котёнок будет только имитировать движение, оставаясь на месте, — вместо него будут перемещаться спрайты фона. 4. Создай спрайт Дом. Он будет играть роль фона. 5. Установи центр костюма спрайта Дом в его геометрическом центре. 6. Создай спрайту Дом ещё несколько костюмов — чем больше, тем лучше. Например, такие, какие показаны на рис. 19.6. Рис. 19.6 7. Подбери спрайту Дом такой размер, чтобы на сцене умещалось ровно два таких дома. Потом мы сделаем ещё две копии спрайта Дом. Если Котёнок будет ♦идти*, то рано или поздно наши два дома сместятся влево или вправо и на сцене покажется третий дом (рис. 19.7): Рис. 19.7 Но пока выполни следующие действия. 148
8. Установи спрайт Дом на сцене на нужной высоте. 9. Составь основной скрипт для спрайта Дом (рис. 19.8): начальное положение повторять всегда движение ЯКИ и. И если правый край если левый край Рис. 19.8 10. Начальное положение рассчитай из следующих соображений: • Какова длина всей сцены? _______________________________ • Какова протяжённость спрайта Дом. если таких два дома за- нимают всю сцену? ________________________________________ • Какая координата отвечает за расположение спрайта вдоль го- ризонтального направления? _______________________________ • Каково должно быть значение этой координаты спрайта Дом. чтобы в начальном положении на сцене были видны два дома? И. Добавь команду, задающую изначальный вид спрайта Дом (но- мер или название костюма). 12. Какой тип вращения нужно установить для спрайта Дом? 13. Определи команды для блока движение: • если нажата стрелка вправо, двигаться влево: • если нажата стрелка влево, двигаться вправо. 14. Почему мы «перепутали» стрелки? 149
15. Активируй скрипт для Дома и проверь: • реагирует ли Дом на нажатие стрелок? • не переворачивается ли вверх тормашками Дом при развороте? • не отражается ли зеркально при развороте? 16. Определи блок если правый край из следующих соображений. 1) Какова координата, определяющая сдвиг спрайта вдоль нижнего края, у спрайта Дом, когда на сцене видна лишь его половина (а вторая половина спрятана за правым краем сцены)? Это будет крайнее правое положение спрайта Дом. 2) Каким должно быть условие, при котором спрайт Дом будет ис- чезать справа? ______________________________________________ 3) Какова координата точки, в которой, исчезая справа, спрайт Дом должен появиться слева, если крайнее левое положение симметрично крайнему правому положению относительно цен- тра сцены? __________________________________________________ 4) Насколько изменится номер костюма у спрайта Дом, когда он возникнет с левой стороны сцены? 17. Составь команду смены костюма при переходе спрайта Дом на левый край сцены по образцу (рис. 19.9): изменить костюм на костюм номер Рис.19.9 18. В пустое окошко команды вставь нужное число (см. свой ответ в п. 16.4). Обрати внимание: благодаря тому что номера костюмов спрай- та меняются циклически (в данном случае: через каждые 5), даже отрицательные числа в команде изменить костюм будут переодевать спрайт в очередной по списку костюм. Напри- мер, костюм № -2 — это тот же костюм, что и № 3 (так как — 2 + 5 = 3). И костюм № 8 — это тоже костюм № 3 (так как 8 — -5 = 3). 19. Аналогично блоку если правый край составь блок если левый край. 20. Активируй скрипт для Дома и проверь: • исчезает ли Дом на правом краю сцены? • появляется ли «новый» Дом на левом краю сцены? • меняет ли Дом костюм? 150
• исчезает ли Дом на левом краю сцены? • появляется ли «новый» Дом на правом краю сцены? • меняет ли Дом костюм? • если долго «идти» в одну и ту же сторону, сколько можно увидеть разных домов? Совпадает ли это число с количеством костюмов спрайта Дом? ____________________________ • подряд ли меняются костюмы? 21. Если на все вопросы ты ответил да, то создай ещё две копии спрайта Дом. 22. Чем будут различаться их скрипты? 23. Нужно ли теперь изменить число в окошке команды, изобра- жённой на рис. 19.9? Если «да», то насколько? 24. Внеси необходимые изменения в скрипты спрайта Дом и его копий. 25. Активируй проект и «прогуляйся» по живописной местности вместе с Котёнком. 26. Сохрани проект. Блоки с параметрами Добавим в игру «Лабиринт» возможность изменения скорости передвижения Котёнка! 1. Какой созданный нами блок отвечает за движение Котёнка? 2. Какие команды в нём отвечают за скорость движения? 3. Сколько их в этом блоке? ________________________________ Согласись, было бы неплохо, если бы можно было поменять зна- чение скорости в одном месте и оно автоматически поменялось бы везде, где требуется! Что ж, и такая возможность есть! Воспользуемся ею. Для этого выполни следующие действия. 1. Открой раздел Другие блоки, щёлкни пра- вой кнопкой по блоку управление стрелка- ми — откроется возможность его редакти- ровать. 2. Щёлкни по слову редактировать — снова откроется окно работы с блоком. Скорость передвижения — числовой параметр. 3. Щёлкни по кнопке Добавить значение (рис. 19.10). Добавить значение число или текст Рис.19.10 151
4. В блоке управление стрелками появится окошко со словами number or text (рис. 19.11): управление стрелками ^number or te: Рис. 9.11 В это окошко надо вписать название параметра, который мы хо- тим изменять (варьировать). 5. Замени слова number or text на слово скорость и щёлкни ОК — блок управление стрелками изменит вид (рис. 19.12): управление стрелками Рис.19.12 А в связанной с ним подпрограмме появится новый параметр — скорость (рис. 19.13): определить управление стрелками скорость Рис.19.13 Этот параметр можно многократно копировать простым перета- скиванием мышью из окошка подпрограммы в команды этой же подпрограммы. 6. Перетащи параметр из блока определить и вставь его скорость в окошки всех команд , составляющих подпро- грамму управление стрелками: идти скорость шагов 152
7. В команде управление стрелками основного скрипта в по- явившемся окошке впиши какое-нибудь число. Например, управление стрелками | 8. Меняя число в окошке команды управление стрелками, убедись, что Котёнок действительно меняет скорость своего движения. 9. Сохрани проект. Параметр скорость относится к так называемым входным па- раметрам, потому что передаётся из другого скрипта. Входное зна- чение помещается в переменную скорость, которая используется только внутри подпрограммы. Кстати, входной параметр может быть не только числом, но и переменной. Например, команда может выглядеть так: управление стрелками выдать случайное от Проект «Тир» В нашем тире нужно будет попасть из ружья по перемещаю- щимся мишеням (рис. 19.14): Рис.19.14 1. Создай копию проекта «Стрельба из ружья». 153
2. Отредактируй фон. добавив в него полосу, по которой будут пе- ремещаться мишени. 3. Создай спрайт Мишень в нескольких костюмах (например, фан- тастических существ из Коллекции). 4. Уменьши спрайт Мишень так. чтобы в неё было не слишком легко попасть. 5. Составь основной скрипт для Мишени следующим образом (рис. 19.15): повторять-всегда £ идти выдать случайное от до шагов Проверка мишень ^^В^И^М^В края Рис. 19.15 6. Начальное положение задай так: • в правом углу на полосе; • в направлении налево; • в случайном костюме; • в исходном размере. Блок Проверка касания края будет проверять, не дошла ли Мишень до левого края Сцены. Благодаря блоку Начальное по- ложение, блок Проверка касания края .будет выглядеть кратко (рис. 19.16): 154
определить Проверка касания края если положение х Начальное положение г Рис.19.16 7. Вставь нужное число в конструкцию ветвления. 8. Активируй спрайт Мишень и проверь: • возникает ли эффект конвейера, когда одна Мишень появля- ется за другой? • меняет ли Мишень костюмы? Блок Проверка попадания в мишень может быть различным. Например, мишень может: • падать вниз, под полосу; • окрашиваться в определённый цвет; • оставлять вместо себя дырку в стене и т. д. Мы же предложим вариант, когда мишень будет разлетаться на множество осколков. Заодно будем подсчитывать, сколько мишеней стрелку удалось подбить. Для этого выполни следующие действия. 9. Создай переменную Счёт. 10. Обнули её (при запуске проекта). Какому объекту можно доба- вить команду обнуления в скрипт? 11. Можно ли команду обнуления добавить в блок Начальное поло- жение? Если нет, то почему? 12. От касания с каким спрайтом будет зависеть срабатывание ко- манд блока Проверка попадания в мишень? 13. Вставь внутрь блока Проверка попадания в мишень следующие команды: • установить эффект мозаика 100; 155
• изменить значение переменной Счёт. На сколько? • ждать; • спрятаться. 14. Какие команды нужно добавить в блок Начальное положение, чтобы следующая появившаяся на сцене Мишень выглядела корректно? _______________________________________________ 15. Запусти проект и проверь: • разлетается ли Мишень на мелкие части? • появляется ли после попадания в Мишень следующая Ми- шень? И в каком виде? • соответствует ли значение переменной Счёт количеству пора- жённых Мишеней? • Не слишком ли легко попасть в Мишень? Если да, то либо уменьши размер Мишени, либо увеличь скорость её передви- жения. 16. Сохрани проект. Самостоятельная работа 1. Создай копию проекта «Лабиринт с потайными ходами*. 2. Структурируй скрипты так же, как мы это сделали в проекте «Лабиринт*. 3. Преобрази скрипт для Мыши к следующему виду (рис. 19.17): Рис. 19.17 156
4. Какие команды относятся к блоку непредсказуемое поведение? 5. Определи в соответствии с п. 4 блок непредсказуемое поведение. 6. Запусти проект и убедись в том, что: • мыши по-прежнему появляются и исчезают в случайных ме- стах сцены; • при касании Кота любой из мышей появляются дополнитель- ные проходы в Лабиринте. 7. Сохрани проект. 157
20. Ввод переменных В Скретче можно создавать интерактивные проекты. Для этого используется команда (ящик Сенсоры). Эта команда называется командой ввода переменных. Если такую команду привести в исполнение, спрайт на сцене за- даст вопрос, а внизу появится окошко для ввода ответа (рис. 20.1): Как тебя зовут? Рис. 20.1 Чтобы поменять вопрос, достаточно щёлкнуть по окошку в ко- манде спросить и ввести другой текст. 1. Отдай команду Котёнку спрятаться. 2. Щёлкни по команде ввода переменных. Кто на сцене теперь за- даёт вопрос? (ящик ответ 3. Поставь ♦галочку* в окошке перед переменной Сенсоры). Каково её назначение? 4. Создай команду с вопросом: ♦Сколько тебе лет?» и приведи её в исполнение. 5. Введи ответ в окошко внизу, после чего либо нажми клавишу Enter, либо щёлкни по ♦галочке*, в конце строки ввода отве- та — и вопрос, и окошко с ответом исчезнут. 158
6. Изменились ли показания датчика ответ? Если да, то чему они теперь равны? 7. Отдай команду Котёнку появиться. 8. Создай команду 9. Приведи команду в исполнение. Как нок?_________________ отреагировал на неё Котё- 10. Снова активируй команду-вопрос и введи тот же ответ, но сло- вами. 11. Поменялось ли содержимое датчика ответ? Каково оно? 12. Какой можно сделать вывод? Делает ли Скретч различие между цифрами и буквами при вводе переменных? 13. Проверь, как теперь отреагирует спрайт на команду идти ответ шагов Переменную ответ можно вставлять и в команды 14. Впиши в команду спросить и ждать текст «Как тебя зовут?». 15. Чтобы ответ на этот вопрос можно было использовать в даль- нейшем диалоге, перенеси в область скриптов оператор (ящик Операторы). 16. 18. В первое окно оператора объединить впиши слово ♦Привет», за- пятую и пробел. Во второе окошко вставь переменную Получившуюся конструкцию вставь в окошко команды гово- рить (рис. 20.2): ответ Рис. 20.2 159
19. Соедини команды спросить и ждать и сказать в один скрипт. 20. Активируй скрипт. 21. Введи в окно ввода своё имя (не забудь нажать Enter!). 22. Как отреагировал Котёнок?_________________________________ 23. Снова активируй скрипт и введи имя своего друга. 24. Поприветствовал ли его Котёнок? 25. Что нужно изменить в команде сказать, чтобы в конце привет- ствия Котёнка появился восклицательный знак? Обрати внимание: пользователь в среде Скретч должен сам следить за содержимым переменной отпет, чтобы буквенные значения не оказались в командах с числовым параметром. Проект «Цветы» (1-й вариант) Создадим проект, в котором на экране будет появляться столь- ко цветов, сколько пользователь программы напишет в ответ на во- прос: «Сколько цветов тебе нарисовать?». 1. Создай новый проект. 2. Создай спрайт Цветок. Он и столько раз, сколько запросит 3. Создай основной скрипт для рис. 20.3: будет оставлять свой оттиск — пользователь. Цветка в виде, показанном на рисование ответ цветов Рис. 20.3 160
Обрати внимание: блок рисование цветов мог бы быть и без параметра, так как содержимое переменной ответ доступно всем объектам проекта. Но, если мы хотим обобщить эту про- грамму на другие варианты её использования, то нужно исполь- зовать параметр. 4. Задай блок Начальное положение для Цветка: • посередине у левого края сцены (точка А на рис. 20.4); • в спрятанном состоянии. 5. В какой переменной хранится ответ на вопрос: «Сколько цветов тебе подарить?»? ______________________ Будем считать, что пользователь ввёл число и. 6. Вычисли, на каком расстоянии находятся точки А и В (см. рис. 20.4): L =. 7. Из расчёта, что все п цветов должны уместиться на сцене меж- ду точками А и В, запиши формулу (зависимость от L и п) для вычисления дистанции между цветами: h = 8. Впиши в таблицу команды для Цветка, которые будут повто- ряться п раз. 1в1
Действие Команда в среде Скретч Оставить оттиск Сместиться на h шагов 9. 10. Какая команда организует в Скретче повторение? Организуй повторение команд из п. 8 столько раз, каково значе- (или, что то же, входного параметра ние переменной ответ количество блока рисование цветов (назовём его 11. Запусти проект для выявления и устранения недочётов. 12. Какую ещё команду необходимо добавить в программу, чтобы нарисованные на сцене цветы не накапливались с каждым её запуском? ___________________________________________________ Если цветов достаточно много, то их изображения на сцене бу- дут сливаться. Чтобы этого не происходило, добавь в блок рисование цветов перед циклом команду (рис. 20.5): 13. установить размер 400 ответ % или установить размер 400 количество Рис. 20.5 14. Запусти проект с разными ответами на вопрос. Есть ли зави- симость между размером цветков на сцене и их числом? Если есть, то какая? ______________________________________________ 15. Какую команду нужно добавить в блок рисование цветов, что бы при n = 1 цветок рисовался в центре сцены? 16. Измени скрипт и проверь работу программы при: • п = 1 • п = 3 • п = 20 17. Внеси, если нужно, поправки в проект. •% 18. Сохрани проект. 162
Лучший игрок Без ввода переменных не обойтись и в играх, где, например, требуется запомнить имя лучшего игрока и его результаты. Пока- жем это на примере игры •Лабиринт*. Лучшим игроком будет счи- таться тот. кто за минимальное время поможет Котёнку дойти до приза. 1. Создай копию игры в «Лабиринт». 2. Добавь к командам, задающим начальные условия, команду сбросить таймер. 3. Создай две переменные — Лучший игрок и Лучшее время. I. Запиши в переменную Лучшее время заведомо большое значе- ние — например, 10 000. 5. В какой переменной будет храниться время, прошедшее с на- чала игры? _______________________________________________ 6. Создай новый блок если ты лучший. 7. Определи его так (рис. 20.6): задать лучшее время * значение таймер Рис. 20.6 8. Каким должно быть условие для вынесения решения о присво- ении игроку звания лучшего? 9. Вставь блок если ты лучший в блок действия на финише. 10. В начале игры дай команду спрятать переменные Лучший игрок и Лучшее время. 11. В конце игры дай команду показать эти переменные. 12. Запусти игру и помоги дойти Котёнку до приза. 163
13. Почему ты показал лучший результат? Могло ли быть иначе? Если да, то как? Если нет, то почему? 14. Сохранится ли имя и время лучшего игрока в проекте до сле- дующей игры? Почему? __________________________________________ 15. Дай сыграть в игру (протестировать проект) своему другу. По- лучилось ли ему показать лучший результат? Если да, то смог ли он вписать своё имя? _______________________________________ 16. Сохрани проект. Проект «Который час?» Создадим интерактивный проект, в котором часы будут пока- зывать то время, какое им «скажет* пользователь (целое число от 1 до 24). 1. Создай фон Циферблат (без часовой стрелки). Минутная пусть показывает на 12 часов. 2. Создай спрайт Часовая стрелка. 3. Установи центр костюма в том месте, вокруг которого Часовая стрелка будет поворачиваться. 4. Совмести центр костюма Часовой стрелки с центром Циферблата. 5. Составь для Часовой стрелки следующий скрипт: • Начальное положение — направление, соответствующее пол- дню. Что это за направление? ______________________________ • Спросить «Который час?» • Повернуться в направление, которое соответствует ответу на вопрос. 6. Как должна выглядеть последняя команда (см. п. 5)? Подсказка: используй блок из ящика Операторы, позволяющий организовать произведение двух чисел. 7. Активируй скрипт и проверь поведение Часовой стрелки при следующих ответах: • 12; • 6; • 3; • 23. 8. Внеси, если нужно, изменения в скрипт. 9. Сохрани проект. 164
Вопросы 1. Как и какой скрипт надо изменить в проекте «Цветы», чтобы на сцене рисовалось случайное число цветов? 2. Проверь себя, внеся необходимые изменения. 3. Проанализируй программу (рис. 20.7) и определи, в какую игру играет Котёнок? когда спросить нажат Скажи число от 1 до 10 если ответ говорить Угадал иначе думать Не угадал 10 и ждать выдать случайное от до секунд секунд Рис. 20.7 Самостоятельная работа Дополни проект «Который час?* спрайтом Минутная стрелка (убрав её изображение с циферблата на фоне) и вопросом «Сколько минут?*. Указания: 1) ответ на вопрос «Который час?* сохрани в отдельной перемен- ной; 2) выполнение команд поворота для обеих стрелок должно быть одновременным (для этого воспользуйся передачей сообщения). 165
21. Рычажок В Скретче возможен ещё один вариант ввода переменных — с помощью рычажка. С рычажками мы встречаемся на каждом шагу, несмотря на то, что сегодня почти все приборы снабжены автоматической на- стройкой. Всякий раз. когда мы крутим ручку приёмника для ре- гулировки громкости или яркости, устанавливаем температурный режим для холодильника или утюга или настраиваем гитару, под- кручивая колки, мы имеем дело с рычажками. Рычажок, или ползунок — это некий объект, который можно перемещать влево и вправо или вверх и вниз. Он предназначен для ввода значений в указанном диапазоне и применяется в тех случа- ях, когда не особенно важно указывать точную величину. 1. Открой новый проект. 2. Создай переменную размер. 3. Создай следующую программу для Весёлого Котёнка (рис. 21.1): установить размер размер % Рис. 21.1 Переменная размер у нас пока не определена. Создадим для ввода её значений рычажок. 4. Щёлкни правой кнопкой мыши по датчику переменной на сиене — откроется список (рис. 21.2): 166
размер 09BJ стандартный вид крупный вид рычажок hide Рис.21.2 5. Выбери режим Рычажок. Как изменился вид датчика? б. Щёлкни по зелёному флажку и. захватив мышкой, двигай ры- чажок от левого края к правому. При этом следи за метамор- фозами с Котёнком на сцене. 7. Каковы минимальное и максимальное значения переменной размер? Минимум Максимум Но в задачах часто нужны другие диапазоны изменений пере- менной. Чтобы понять, как их получить, поэкспериментируй со следующими командами и заполни таблицу: Команда Минимальное значение Максимальное значение % установить размер установить размер размер 0.5 50 % размер установить размер размер % установить размер размер установить размер 100 рэзмрр 167
8. Какую команду нужно составить, чтобы размер Котёнка менял- ся от 200 до 300?__________________________________________________ Как видишь, для изменения диапазона одной переменной -г- BSFFw\(0УWt%М1'размер Проект «Цветы» (2-й вариант) 1. Создай копию проекта «Цветы». 2. Создай переменную количество цветов. 3. Установи вид переменной в режим рычажка. 4. Удали из скрипта для Цветка команду ввода переменной. 5. Замени в основном скрипте переменную ответ на переменную количество цветов. (Если в прежнем проекте ты использовал блок рисование цветов с параметром, то больше никаких изме- нений вносить не потребуется. Если же блок рисование цветов был без параметра, то теперь придётся его добавить и использо- вать внутри блока вместо переменной ответ.) В общем-то наш проект уже готов. Но мы внесём в него пару изменений. 6. Создай спрайт Кнопка. 7. Размести его в правом нижнем углу. 8. Напиши (в режиме Редактировать) на Кнопке: «Очистить». 9. Создай скрипт для Кнопки: когда щёлкнут по спрайту, очи- стить графику. 10. Какую команду из скрипта для Цветка теперь можно удалить? Пусть при каждом запуске проекта цветы рисуются разного (случайного) цвета и на разных (случайных) строчках. 11. Измени команду, задающую начальное положение для Цветка: вместо точки А — любая точка на синей прямой (рис. 21.3). 1 2. Какая координата для точек синей прямой не меняется и како- во её значение? ________________________________________________ 13. Каков диапазон изменений для второй координаты точек пря- мой? Минимум Максимум * 168
14. Добавь к командам, задающим начальное положение, команду, выбирающую случайный цвет спрайта Цветок. 15. Перейди в режим презентации. 16. С помощью рычажка варьируя значение переменной количество цветов, последовательно запускай проект и вырасти на экране цветник. 17. Проверь, работает ли кнопка очистить. 18. Сохрани проект. Проект «Правильные многоугольники» Многоугольник называется правильным, если у него равны все стороны и все углы. В частности, квадрат является правильным четырёхугольни- ком. А равносторонний треугольник — правильным треугольником (рис. 21.4): Рис.21.4 169
Чтобы найти зависимость между количеством сторон правиль- ного k-угольника и углом поворота а, на который спрайт будет по- ворачиваться для рисования следующей стороны многоугольника, ответь на следующие вопросы. 1. Если спрайт после выполнения скрипта должен вернуться в ис- ходную точку, то на какой суммарный угол он должен повер- нуться? ___________________________________________________ 2. Сколько раз спрайту нужно повторить рисование стороны мно- гоугольника и поворот к следующей стороне? 3. Вставь пропущенные значения в алгоритме рисования правиль- ного k-угольника (рис. 21.5): раз шагов повернуть С4 на градусов Рис. 21.5 4. За какой параметр «отвечает» переменная п? 5. Создай новый проект. Пусть Рисовальщиком в нём будет Ве- сёлый Котёнок. 6. Создай две переменные — количество углов и размер и уста- нови их на сцене, соответственно в левом и правом верхних углах. 7. Переведи каждую из них в режим рычажка. 8. Каким может быть минимальное значение переменной количе- ство углов?_________________________________________________ 9. Создай для Рисовальщика скрипт рисования правильного к-уголь- ника (не забудь опустить ему перо!). 10. Добавь в скрипт Рисовальщика команды, задающие его началь- ное положение: 1) в точке с координатами (0, 150); 2) в направлении вправо; 3) с пером случайного цвета. 170
11. Спрячь спрайт Рисовальщик. 12. Создай кнопку, подобную созданной в проекте «Цветы», кото- рая очищает графику. 13. Перейди в режим презентации. 14. Установи значение переменной количество углов, равное 5. 15. Последовательно меняя значение переменной размер, проследи, как меняются на экране пятиугольники. 16. Как ты думаешь, сколько пятиугольников размером, равным 10, поместится в пятиугольнике размером, равным 50? 17. Проверь, работает ли кнопка очистить. 18. Последовательно меняя значение переменной количество углов от минимума до максимума при фиксированном значении пере- менной размер, нарисуй спектр многоугольников. 19. Сохрани проект. Проект «Правильные звёзды» 1. Создай копию проекта «Правильные многоугольники». 2. Создай ещё одну переменную — d и установи её на сцене в виде рычажка. 3. Вставь её в команду поворота (рис. 21.6): Рис. 21.6 Как, по-твоему, повлияет на результат появление этой перемен- ной? 4. Установи рычажок для переменной к в значение 13. а для пе- ременной п — в максимальное значение. 5. Последовательно меняя значение переменной d от 2 до 12, по- лучи семейство фигур. 6. Что у этих фигур общее? 7. А чем они различаются? 8. Сохрани проект. Мы построили параметрическую модель. 171
На рис. 21.7 изображено семейство фигур при п—13 и несколь- ких значениях d: Рис. 21.7 Нетрудно заметить, что у всех этих фигур по 13 вершин. Од- нако если при d=l эти вершины соединяются последовательно, то при d = 2 — через одну. При d = 3 — через 2 и т. д. Таким образом, параметр d отвечает за шаг, с которым переби- раются вершины, делящие окружность на к равных частей. 9. Проверь, как будет выглядеть нарисованная фигура, если к и d окажутся кратны друг другу (например, при к = 20, d = 4)? 10. А сколько углов будет в фигуре при к = 20, d=14? Вопросы 1. К какой фигуре приближаются правильные многоугольники с увеличением числа углов? ______________________________ 2. Почему в проекте «Правильные многоугольники» мы установи- ли минимум для переменной количество углов, равный 3? 3. Что нарисовал бы Рисовальщик, если бы количество углов было равно 2? ___________________________________________________ 4. А если бы 1? 5. Опиши или нарисуй в квадрате на рис. 21.8 пример, опроверга- ющий следующее утверждение: многоугольник — правильный, если у него равны все стороны. . 172
Рис. 21.8 6. Создай копию проекта «Правильные многоугольники « и замени в нём скрипт для Рисовальщика на следующий (рис. 21.9): 10 когда нажат повторить повторить 10 20 шагов градусов повернуть С на размер градусов опустить перо и идти ( I повернуть С* на Рис. 21.9 7. Что рисует Рисовальщик?________________________________ 8. *Создай ещё две переменные-рычажки — количество шагов и угол. Вставь их в соответствующие команды. 9. Варьируя новые переменные, проследи, как меняется вид ри- сунков. 173
10. Попробуй, не используя среду Скретч, определить, что бу- дет нарисовано в результате выполнения следующих скриптов (рис. 21.10): градусов а) градусов градусов Рис. 21.10 а)_____________________________________________________________________________ б)__________________ ____________________________________________ в)___________________ 11. Проверь себя на компьютере. 174
22. Списки Что такое список, известно всем. Мы составляем список при- глашённых на день рождения, чтобы всем отправить приглашения. Список вещей позволяет нам ничего не забыть, собирая в дорогу че- модан. Когда мы волнуемся перед выступлением на конкурсе, под- считываем по списку участников, через сколько номеров нам идти на сцену... Список — это упорядоченный набор однотипной информации. В Скретче тоже есть возможность создавать списки. 1. Щёлкни по кнопке Создать список (ящик Переменные). По- явится окно (рис. 22.1): Новый список х Имя нового списка Для всех О Только для этого спрайтов спрайта ОК Рис. 22.1 2. В пустой строке окна введи имя списка, например моя семья, и нажми кнопку ОК. 3. Что изменилось на сцене?_________________________________ 4. Какие команды появились в инструментальном ящике Перемен- ные? _______________________________________________________ Созданный список пока пуст, о чём говорит надпись внизу спи ска: длина: 0. 175
5. Чтобы ввести в него запись, щёлкни по значку + (внизу спи- ска). Под названием списка появится цифра 1 и рядом с ней окошко для ввода текста (рис. 22.2): Рис. 22.2 б. Впиши в окошко имя главы своей семьи и нажми Enter. 7. Аналогично создай следующие записи, заполнив их именами других членов семьи. 8. Чтобы все записи в списке были видны, перетащи его в центр сцены, наведи мышью на правый нижний край — курсор при- мет вид двусторонней стрелки — и потяни вправо и вниз. 9. Как ты думаешь, что такое длина списка? 10. Создай блоки-вопросы, как в таблице, и, щёлкая по ним, внеси ответы в таблицу: Вопрос Ответ ^элемент в семья ▼ ^длина ▼ семья ▼ содержит • 176
Чтобы удалить запись или элемент в списке, надо щёлкнуть по нему мышкой — справа от него появится крестик. Щелчок по кре- стику удаляет выделенный элемент, при этом следующие за ним элементы списка сдвигаются наверх. 11. Удали последнюю запись в списке. Какая команда дублирует это действие? 12. Вставь удалённую запись на первое место в списке с помощью команды (рис. 22.3): Рис. 22.3 вписав в окошко после слова вставить удалённое слово. 13. Исчез ли элемент, который до этого был первым? Если нет, то каким он стал по счёту в списке? 14. Измени последний элемент в списке на то же значение, но за- писанное прописными буквами. С помощью какой команды это можно сделать?________________________________________________ 15. Перечисли, какие из блоков в ящике Переменные относятся к датчикам: ____________________________________________________ 16. Перечисли, какие из блоков в ящике Переменные относятся к сенсорам: ____________________________________________________ 17. Спрячь список. Как это сделать? 18. Удали список с помощью кнопки Удалить список. Проект «Гадание» Загадай желание! Хочешь узнать, сбудется ли оно? Весёлый Котёнок готов выступить в роли Прорицателя и ответить тебе на этот вопрос. 1. Создай таинственный фон для сцены, изображающий, напри- мер, горящие в темноте свечи. 2. Создай список ответы. Весёлый Котёнок в роли Прорицателя будет отвечать на вопросы-желания. Поэтому выполни следующие действия. 177
3. Заполни список различными ответами на вопрос: «Сбудется ли желание?» (кроме «да» и «нет», заготовь и такие варианты, как «Сбудется через год», «Нет, но ты не расстроишься» и пр.). 4. В режиме редактирования удали изображение спрайта Прори- цатель. Обрати внимание: изображения у спрайта может не быть, но это не мешает ему выполнять команды! 5. Создай для Прорицателя следующую команду: когда щёлкнут по зелёному флажку, произнести фразу: «Задай свой вопрос и нажми Пробел». 6. Создай для Прорицателя команду, приводимую в действие на- жатием на клавишу Пробел (сигнал того, что вопрошающий задал свой вопрос): выбрать (команда говорить) случайный эле- мент из списка ответы. 7. В каком диапазоне должны меняться случайные числа в преды- дущей команде? От чего они зависят? 8. Перейди в режим презентации. 9. Запусти проект и узнай, сбудется ли твоё желание (только всё же не забывай, что наше гадание — шуточное)!.. 10. Сохрани проект. Проект «Назойливый собеседник» Представь себе разговор двух существ, одно из которых не же- лает общаться, а другое, напротив, постоянно лезет с вопросами. 1. Создай два спрайта — Болтуна и Молчуна. 2. Составь два списка — вопросы и ответы. Как ты думаешь, кто будет задавать вопросы, а кто отвечать? 3. Заполни список вопросы разными предложениями. Например, 1) Как тебя зовут? 2) Почему ты не прыгаешь? 3) Кто тебя обидел? 4) Где твои друзья? И т. п. 4. Заполни список ответы фразами, типа: 1) Отстань! 2) Замолчи! 178
3) У меня от тебя болит голова! 4) Уйди! И т. п. Чем длиннее будут списки, тем интереснее! 5. Создай для Болтуна команду: когда флаг нажат, сказать: «При- вет!» и передать сигнал Молчуну «Отвечай». 6. Создай для Молчуна скрипт: когда получу сигнал «Отвечай», сказать любую фразу из списка ответы и передать сигнал «Говори». (. Добавь ещё один скрипт для Болтуна: когда получу сигнал «Го- вори», сказать любую фразу из списка вопросы и передать сиг- нал «Отвечай». 8. Самостоятельно добавь в скрипт для Молчуна команду, по ко- торой он будет отворачиваться всякий раз, когда к нему будет обращаться с вопросом Болтун. 9. *Добавь Болтуну какие-нибудь движения. 10. *Создай подходящий фон. 11. Перейди в режим презентации, запусти проект и насладись диа- логом. 12. Сохрани проект. Вопросы 1. Зачеркни лишнюю запись в списке: 1) операторы; 2) движение; 3) переменные; 4) перо; 5) контроль; 6) сенсоры; 7) списки; 8) звук; 9) внешность. Что это за список? ________________________________________ 2. Зачеркни не существующие в Скретче команды: 1) плыть; 2) идти; 3) лететь; 4) повернуться; 5) перекувыркнуться; 6) подпрыгнуть; 7) если край, оттолкнуться. 179
3. Какая закономерность связывает элементы списка числа: Рис. 22.4 4. На сколько шагов переместится спрайт по команде 5. На сколько градусов повернётся спрайт по команде 6. Сменит ли спрайт костюм, выполняя команду (рис. 22.5)? Рис. 22.5 180
Самостоятельная работа Измени скрипт для Прорицателя в проекте «Гадание* так, что- бы диалог пользователя с ним стал интерактивным. Например, таким: Прорицатель: — Загадай желание! Открывается окно ввода. Пользователь вписывает в него свой вопрос — например, «По- лучу ли я 5 за урок?» Прорицатель: — Ответ на твой вопрос «Получу ли я 5 за урок?» — «Конечно, да!». 181
23. Фантомные объекты" До сих пор мы в любом проекте имели дело со спрайтами, т. е. с графическими объектами, свободно перемещаемыми по экра- ну. А можно ли создать иллюзию объекта, который реагировал бы на прикосновения мыши, перемещался по сцене, отталкивался от её краёв, при отсутствии соответствующего спрайта? Например, можно ли изобразить движение круга (треугольника и т. п.) с за- данной скоростью в заданном направлении? Да ещё чтобы он при этом отталкивался от краев сцены? Оказывается, можно. Для этого нам достаточно каждый раз очищать экран от нарисованного объекта и заново рисовать его в новом месте. Если такая смена положений будет достаточно частой, то возникнет иллюзия движения. Итак, рассмотрим для начала са- мый простой объект — точку. Положение точки на плоскости опре- деляется двумя числами — координатами х и у. Проект «Фантомная точка» 1. Создай спрайт-рисовальщик. Его вид может быть любым, посколь- ку мы его всё равно спрячем. Можно даже сделать пустой спрайт! Краткое описание действий спрайта можно представить следую- щим образом (рис. 23.1): когда нажат и Н ф:(1М ИШС И 1ЮВ’л|пиь наяда если край, оттолкнуться Рис. 23.1 Раздел повышенной сложности. 182
Для нас принципиально лишь то, чтобы вид спрайта не совпа- дал с видом того объекта, который мы хотим сымитировать, в данном случае — с точкой. 2. Создай блоки: • начальное положение; • изобразить точку; • перемещение; • если край, оттолкнуться. Для имитации движения точки нам потребуются четыре пере- менные: • х и у, хранящие её координаты; • скорость НИЯ. Поскольку воспользуемся и направление, задающие характеристики её движе- переменная ею. направление в Скретче уже есть, то 3. Создай три переменные: х, у и скорость. 4. Определи блок начальное положение следующими командами: • очистить сцену от предыдущей графики; • задать размер пера, равный 5 или больше (чтобы точка была хорошо видна); • задать значения переменных х и у случайными числами; • задать значение переменной скорость — пусть это тоже будет случайное число из диапазона от 1 до 10; • задать значение переменной направление — пусть для начала это будет направление вправо (влево) или вверх (вниз). Определим блок изобразить точку из следующих соображений: • изображение точки в прежнем положении должно исчезнуть; • изображение точки с координатами х и у должно быть видно; • между старым и новым положениями точки не должно быть никаких линий. 5. Какой командой в данном случае нужно воспользоваться — пе- чать или опустить перо? ____________________________________ 6. Определи блок изобразить точку. Добавим к изображению точки её перемещение. Для этого нам нужно каждый раз пересчитывать её координаты. Какая коорди- ната — х или у — меняется при движении в направлении вправо (влево)? . А в направлении вверх (вниз)? 7. Определи блок перемещение так, чтобы в зависимости от значе- ния переменной направление менялось значение той или иной переменной (х или у) на значение переменной скорость. 8. Собери основной скрипт так, как показано на рис. 23.1, времен- но исключив из него блок если край, оттолкнуться. 183
9. Запусти проект несколько раз и убедись в том, что: • точка видна при каждом запуске; • точка оказывается в разных местах сцены; • точка движется вправо, влево, вверх или вниз — в зависимо- сти от заданного в блоке начальное положение значения пе- ременной направление. Добавим имитацию отталкивания точки от краёв сцены. Для этого нужно задать условие достижения точкой (т. е. её координат) значений, находящихся за краями сцены. 10. Чтобы понять, как будет меняться значение переменной на- правление при отталкивании от края, заполни таблицу: Ориентация движения Исходное направление Направление после отталкивания от края горизонтальное -9° 90 вертикальное 0 180 11. Какая закономерность связывает значения исходного направле- ния и изменённого после отталкивания в горизонтальном на- правлен и и?__________________________________________________ 12. А в вертикальном направлении? 13. Определи блок если край, оттолкнуться. 14. Сравни свою программу со скриптом, изображённым на рис. 23.2. Где команд меньше? 15. Не спеши переделывать свою программу! Сначала проверь пра- вильность её работы! 16. Добавь блок если край, оттолкнуться в основной скрипт (как показано на рис. 23.1). 17. Запусти проект и проверь: правильно ли отталкивается точка от всех четырёх краёв сцены? А теперь обобщим этот проект для равномерного движения в любом направлении! 184
определить если край, оттолкнуться если модуль 240 повернуться в направлении от то направление модуль направление 180 если Рис. 23.2 повернуться в направлении 18. Как ты думаешь, в какие блоки нам предстоит внести измене- ния? __________________________________________________________ Проверим корректность работы блока если край, оттолкнуться в случаях, когда направление движения не является ни вертикаль- ным, ни горизонтальным! На рис. 23.3а изображён случаи удара точки о вертикальный край справа. Направление движения до встречи с краем отмечено сплошной линией, а после отталкивания — пунктирной. По закону физики, который мы хотим сымитировать, угол падения (а) равен углу отражения ([)). Но, поскольку переменная отсчитывает вели- чину угла от вертикального направления, то нам нужно определить закон, по которому угол цо меняется на угол [Зо (см. рис. 23.36). Не- трудно доказать, что = -р„. Рис. 23.3 185
Аналогичную закономерность можно обнаружить и в случае удара точки о левый край. Теперь рассмотрим случай удара точки о горизонтальный край сверху (рис. 23.4): Рис. 23.4 Из рис. 23.46 видно, что ао = а (как вертикальные углы). А р„ + р = 180 (как смежные углы). Отсюда следует, что а„ = 180 - (Jo. Аналогично доказывается это соотношение и для случая удара точки о нижний край. Таким образом, мы проверили закономерности, используемые в командах блока если край, оттолкнуться, обобщив их на любое на- правление движения. Теперь внесём изменения в блок перемещение (рис. 23.5). Рис. 23.5 Пусть наша точка должна переместиться за единицу времени на расстояние v — из положения А в положение В. Задача заключает- ся в том, чтобы узнать, насколько при этом изменятся координаты х и у, т. е. найти Лх = х2-х, и Лу = у2-у1. Если тебе знакомо понятие вектора, то задачу можно перефор- мулировать следующим образом: требуется вычислить проекции вектора v на оси координат. В математике для этого есть специальные множители, называ- емые косинусом и синусом угла наклона, которые позволяют вы- числять проекции вектора на осп координат. Обозначают: sin а и cos а, где и — угол наклона вектора к одной из осей. 186
В нашей задаче эти проекции можно получить из следующих соотношений: Ах = v- sin u Ay v•cos a Значения синуса и косинуса при разных углах наклона берутся из специальной таблицы и являются результатом сложных расчётов. К счастью. Скретч тоже умеет вычислять синус и косинус (рис. 23.6): Рис. 23.6 19. Измени команды в определении блока перемещение по образцу, представленному на рис. 23.7: Рис. 23.7 187
20. Задай значение переменной направление случайным числом. В каком диапазоне находится это число? 21. Запусти проект несколько раз и убедись в том, что: • точка движется под самыми разными углами; • точка отталкивается от всех четырёх краёв сцены по закону отражения. 22. Сохрани проект. Проект «Фантомный спрайт» А теперь сделаем так, чтобы нашу фантомную точку, подобно спрайту, можно было бы захватить мышью и перетащить н дру гое место! 1. Создай копию проекта .Фантомная точка*. 2. Удали из него: • блок если край, оттолкнуться; • переменную скорость. Переменная направление нам тоже не понадобится, ведь теперь перемещение нашей точки будет определяться исключительно поло- жением курсора мыши. А при каких условиях наша точка будет перемещаться? Вспом- ним. как это происходит со спрайтом: мы наводим на него курсор и нажимаем левую кнопку мыши. Под условие наведения на наш фантомный спрайт курсора должно подпадать целое множество точек, отстоящих от его цен- тра на некоторое расстояние. Поэтому общее условие перемещения точки может выглядеть так (рис. 23.8): мышь иджата? и МОауПЬ • OI » МЫ4Й4 Рис. 23.8 Однако, как только мы отведём курсор в сторону, желая пере- местить туда наш фантомный спрайт, как тут же перестанет выпол- няться вторая часть условия (см. рис. 23.8)! Какой-то заколдованный крут! Как же из него выйти? Выход есть! Нужно создать ещё одну переменную, которая будет играть роль переключателя: 1) как только выполнится условие, изображённое на рис. 23.8, пе- ременная-переключатель примет значение «включено» (или 1); 2) как только начнётся режим «включено., фантомный спрайт будет идти за курсором мыши 188
(команда перейти на указатель мыши ▼ . Кому адресована эта кома нда?); 3) как только левая кнопка мыши будет отжата, переменная-пере- ключатель примет значение «выключено» (или 0) и условие 2 перестанет выполняться. Такая переменная-переключатель носит в программировании название флаг. 3. Создай переменную флаг. 4. Добавь в определение блока начальное положение обнуление пе- ременной флаг. 5. Удали из определения блока перемещение все команды. 6. Определи блок перемещение с помощью трёх независимых кон- струкций ветвления и переменной флаг, словесное описание ко- торых приведено выше. Обрати внимание: в режиме «включено» должны изменяться не только значения переменных, хранящих координаты фан- томной точки, но и само изображение точки в новом месте! 7. Запусти проект и проверь: • перемещается ли наша точка при захвате её мышью? • следует ли она за курсором? • прекращает ли точка движение при отжатии левой кнопки мыши? • не «застревает» ли точка при слишком быстром движении курсора? 8. Если происходит «застревание», увеличь число в условии (см. рис. 23.8), характеризующее величину возможного отклонения курсора от центра фантомной точки. 9. Сохрани проект. 189
24. Клонирование В Скретче тоже используются фантомные объекты, дублиру- ющие поведение спрайта-прототипа. Такие объекты называются клонами. Синонимами слова клон являются: копия, дубликат, двойник. Мы будем клонировать спрайты. Где же это может пригодить- ся? В любом проекте, где участвуют однотипные объекты. Помнишь проект «Вырастим цветник»? В нём мы перемещали спрайт Цветок в случайное место сцены, окрашивали его в случай- ный цвет и оставляли его оттиск. То же самое можно было сделать с помощью клонов спрайта Цветок и без использования команды печать. При этом скрипт для спрайта Цветок выглядел бы так, как показано на рис. 24.1: Рис. 24.1 Команда создать клон находится в ящике События. 1. Создай копию проекта «Вырастим цветник». 2. Замени скрипт для спрайта Цветок на скрипт, изображённый на рис. 24.1. 3. Запусти проект и проверь: заполняется ли сцена разноцветными цветами? 4. Чтобы понять разницу между клонами и оттисками спрайта, за- хвати мышью один из цветов и перенеси в другое место. 190
5. Проверь, что точно так же можно поступить с любым другим клоном спрайта Цветок. Обрати внимание: количество спрайтов при клонировании не увеличилось! В этом ты можешь убедиться, взглянув на пере- чень спрайтов! Более того, как только проект завершит работу, клоны исчезнут. 6. Нажми на кнопку Остановить — 7. Сколько цветов осталось на сцене? 8. Сохрани проект. Проект «Лабиринт с потайными ходами» Вспомним ещё проекты, в которых нам приходилось иметь дело с одинаковыми спрайтами! Это, например, проект «Лабиринт с по- тайными ходами». В нём, кроме кота, идущего по лабиринту, были мыши, появ- лявшиеся в самых разных местах сцены. Если кот съедал одну из них, то в лабиринте на некоторое время появлялись дополнитель- ные проходы. Мышей было три — три одинаковых спрайта: Мышь-1, Мышь-2 и Мышь-3. Теперь же мы научимся обходиться одним. 1. Создай копию проекта «Лабиринт с потайными ходами». 2. Удали из него все спрайты Мышь, кроме одного. 3. Основной скрипт для Мыши составь следующим образом (рис. 24.2). создать клон самого себя ▼ Рис. 24.2 Если ты запустишь проект, то ничего не увидишь. Ведь и Мышь-оригинал, и её клоны спрятаны. 191
Ио мы дополним основной скрипт для Мыши скриптом для её клонов (рис. 24.3): когда я начинаю как клон непредсказуемое поведение Рис. 24.3 В нём блок непредсказуемое поведение описывает появление и исчезновение мышей-клонов в случайном месте на случайное время. 4. Перетащи из раздела Контроль в область скриптов запускаю- щий блок когда я начинаю как клон 5. Составь скрипт для клонов Мыши по образцу (см. рис. 24.3). 6. Запусти проект и убедись в том, что клоны Мыши ведут себя и реагируют на встречу с Котом так же, как раньше реагировали спрайты Мышь-1, Мышь-2 и Мышь-3. 7. Сохрани проект. Клонирование помогает в создании таких эффектов, как салют, рой насекомых, дождь, снегопад, звёздное небо и многих других. Покажем это на примерах. Проект «Снегопад» 1. Создай новый проект. 2. Создай фон — тёмное пространство. На нём лучше будут видны снежинки. Снежинка 1. Создай спрайт Снежинка. 2. Создай для спрайта Снежинка скрипт: Когда флаг нажат: • спрятаться; • создать 10 000 клонов самого себя. 192
3. Создай скрипт для клонов спрайта Снежинка (рис. 21.4): когда я начинаю как клон начальное положение В повторять всегда I --н начальное положение Рис. 24.4 4. Определи блок начальное положение из тех соображений, что каждая снежинка должна иметь: • случайное положение наверху сцены: • случайный размер; • случайную яркость (эффект-призрак). 5. Какая координата определяет положение спрайта наверху сце- ны? ___________________ 6. В каком диапазоне эта координата может изменяться, чтобы спрайт оказывался внутри сцены? 7. Определи блок падать всего одной командой плыть — вниз сцены. 8. Какая координата в положении спрайта отвечает за его положе- ние внизу сцены? ____________________________________________ 9. Чему она равна внизу сцены? 10. Как сделать так, чтобы у разных Снежинок были разные ско- рости падения? _______________________________________________ 11. Чтобы Снежинки падали не вертикально, а, как и положе- но снежинкам, немного отклонялись от вертикального полёта, определи координату х в команде плыть так, как показано на рис. 24.5. Рис. 24.5 193
12. Активируй спрайт Снежинка и проверь: • много ли снежинок появилось на сцене? • не слишком ли они крупны? • отличаются ли снежинки размером, яркостью и скоростью? • не прекращается ли снегопад, когда все снежинки достигают низа сцены? • возникает ли эффект объёмности сцены? 13. Экспериментальным путём подбери диапазоны случайных чисел в командах установления размера, яркости и скорости клонов спрайта Снежинка. Сугробы 1. Добавь ещё один спрайт — Сугроб. Сугробов у нас тоже будет много, они будут располагаться внизу сцены и увеличиваться в размерах с течением времени. 2. Уменьши спрайт Сугроб так, чтобы он занимал очень небольшое место на сцене. 3. Создай основной скрипт для спрайта Сугроб: 1) спрятаться; 2) установить первоначальный размер; 3) создать 1000 клонов. 4. Создай скрипт для клонов спрайта Сугроб (рис. 24.6): когда я начинаю как клон начальное положение всегда ждать О секунд изменить размер на % Рис. 24.6 194
5. Определи блок начальное положение командами: 1) показаться; 2) перейти в случайное положение внизу сцены. 6. Активируй спрайт Сугроб и проверь: 1) застилают ли сугробы собой весь низ сцены? Если нет, увеличь число клонов; 2) вырастают ли сугробы со временем? 7. Запусти проект. Не правда ли, сугробы появляются и растут раньше выпадения снега? 8. Чтобы это исправить, добавь в основной скрипт спрайта Сугроб команду ожидания. 9. Подбери время ожидания так, чтобы первые сугробы показа- лись после падения первых снежинок. 10. Запусти проект и насладись зимним пейзажем. В проект можно добавить ещё и деревья, на которые будет са- диться снег. Их можно сделать частью фона, а можно клонировать спрайт Дерево. Вариант с деревьями, нарисованными на фоне, оставим для са- мостоятельной работы. Ёлки 1. Создай спрайт Ёлка (или любое другое дерево). 2. Составь для спрайта Ёлка основной скрипт: • перейти в задний слой; • спрятаться; • создать нужное количество клонов. Первая команда — перейти в задний слой — нужна для того, чтобы снежинки падали перед ёлками, а не за ними. 3. Составь для клонов спрайта Ёлка скрипт из следующих команд: • оказаться в нужном месте. В каком именно, реши сам: твои ёлки растут хаотично или высажены в ряд? • изменить, если нужно, размер. Это снова оставим на твоё усмотрение: твои ёлки будут одинакового размера или разно- го? • показаться на сцене. 4. Запусти проект и проверь: • появляются ли ёлки в том порядке, в каком ты задумал? • разного ли они размера? 5. Добавь для спрайта Снежинка ещё один блок — если ёлка. 6. Определи блок если ёлка так: если Снежинка касается спрайта Ёлка, оставить след (команда печать). 195
7. Продублируй запускающий блок для клона когда я начинаю как клон 8. Определи параллельный скрипт для клона как бесконечное по- вторение блока если елка. 9. Как ты думаешь, почему нельзя добавить блок если ёлка к су- ществующему скрипту для клона Ёлки? Обрати внимание: условие касания спрайта Ёлка распростра- няется на все его клоны! 10. Запусти проект и убедись в том, что снежинки оседают на ёлках. 11. Как ты думаешь, почему ёлки становятся белыми только по контуру (см. рис. 24.7)? _________________________________ https: papik.pro risunki '73049-derevo-risunok-elka-49foto.htinl Рис. 24.7 12. Л как окрасились бы ёлки, если бы они были нарисованы на фоне? _______________________________________________________ 13. Сохрани проект. 196
Доработка проекта «Бесконечный фон» Вернёмся к проекту « Бесконечный фон* и заменим в нём копии спрайта Дом на его клоны. 1. Создай копию проекта * Бесконечный фон*. Создадим три копии спрайта Дом. При этом сам спрайт мы спрячем. 2. Создай основной скрипт для спрайта Дом (рис. 24.8): показаться когда установить способ вращения не вращать * перейти в х: -240 изменить костюм на выдать случайное от изменить х на повторить самого себя создать клон следующий костюм раз Рис. 24.8 спрятаться 3. Подбери пропущенные в командах числа и проверь: • сколько на сцене появляется домов? 197
• достаточное ли между Домами расстояние (не наползают ли Дома друг на друга)? • все ли Дома разные? 4. Составь для клонов скрипт (рис. 24.9): когда я начинаю как клон повторять всегда движение если правый край если левый край Рис. 24.9 5. Запусти проект и проверь: • исчезают ли Дома при «движении* Котёнка вправо? • появляется ли вместо исчезнувшего справа Дом с левой сто- роны сцены? • исчезают ли Дома при «движении» Котёнка влево? • появляется ли вместо исчезнувшего слева Дом с правой сто- роны сцены? 6. Сохрани проект. 198
25. Вносим в клоны индивидуальность До сих пор клоны спрайтов в наших проектах были достаточно безлики. Но часто бывает нужно, чтобы каждый клон «жил» своей жизнью и чем-то отличался от себе подобных. Рассмотрим, к примеру, проект, в котором спрайт и его клоны характеризуются неким параметром — например, размером. Как сделать так, чтобы этот параметр был у каждого клона свой? В этом нам поможет создание локальных переменных (рис. 25.1), которые мы привяжем к каждому клону! Локальная — значит, она доступна только для данного спрайта или клона. Покажем это на примере проектов «Цветник* и «Межгалакти- ческий полёт*. Проект «Цветник» Мы будем выращивать цветок-оригинал вместе с его клонами и при этом следить за ростом каждого из них (рис. 25.2). Ъ Ъ й л Рис. 25.2 199
1. Создай новый проект. 2. Создай спрайт Цветок. Сам спрайт мы спрячем, а будем иметь дело только с его клонами. 3. Для того чтобы каждому клону задать своё место на сцене, соз- дай переменную — количество цветов. 4. Создай два блока: 1) начальное положение: 2) создание клонов. 5. Определи блок начальное положение для спрайта Цветок из следующих соображений: 1) размер спрайта — маленький (например. 5%); 2) спрайт невидим: 3) начальное значение переменной количество цветов равно 0. 6. Определи блок создание клонов как 5-кратное повторение сле- дующих команд: 1) увеличить значение переменной количество цветов на 1; 2) создать клон спрайта Цветок. 7. Создай блок для клонов спрайта Цветок по образцу (рис. 25.3): когда я начинаю как клон нам. полож. клона Количество цветов поливка Рис. 25.3 Как ты уже знаешь, клон появляется в том месте, где находил- ся оригинал при его создании. Поэтому будем перемещать оригинал вдоль нижней границы сцепы, располагая клоны на равном рассто- янии друг от друга. 8. Создай блок начальное положение клона с параметром номер клона (рис. 25.4): 200
нач. полож. клона номер клонг< Рис. 25.4 9. Определи блок начальное положение клона так (рис. 25.5): Рис. 25.5 10. Подставляя в выражение для координаты х (см. рис. 25.5) по- следовательно значения номера для 1, 2, 3, 4 и 5-го клона, за- полни таблицу расположения клонов на сцене: Номер клона Координата х 1 2 3 4 5 11. Определи по таблице или по выражению, вычисляющему зна- чение координаты х, на каком расстоянии друг от друга будут располагаться клоны на сцене? 12. Создай блок Поливка. Для простоты выращивать цветы мы будем касанием указателя мышки. 201
13. Определи блок поливка следующим образом (рис. 25.6): определить поливка если касается указатель мыши изменить размер на Рис. 25.6 14. Запусти проект и удостоверься в том, что: 1) цветы располагаются на сцене так, как показано на рис. 25.2; 2) цветы растут при наведении на них указателя мыши. 15. Сохрани проект. Украшательства Добавим в проект спрайт-поливальщик. 1. Создай спрайт Поливальщик (можно в двух костюмах, смена которых имитирует льющуюся воду). 2. Установи центр костюма внутри потока воды, как, например, на рис. 25.7. Рис. 25.7 202
3. Нарисуй фон — клумбу, где будут расти цветы. 4. Создай для спрайта Поливальщик основной скрипт: • спрятаться. 5. Активируй спрайт Цветок. 8. Активируй спрайт Поливальщик. 9. Создай скрипт, запускающийся по сигналу «Поливай!*: • повернуть в направление О градусов; • перейти в указатель мыши; • показаться; • если у спрайта Поливальщик два костюма, то организуй их смену. 10. Запусти проект и проверь, «поливает» ли Поливальщик Цветок, на который наводят мышь? 11. Сохрани изменения в проекте. Определение максимального цветка А теперь сделаем так, чтобы цветок, оказавшийся больше дру- гих, каким-нибудь образом выделялся на фоне остальных. Напри- мер, начинал искриться, менять окраску или над ним начинали летать бабочки. Это можно сделать с помощью ещё одного костюма, передачи сигнала спрайтам-бабочкам, а можно воспользоваться командой изменить эффект цвет » на Выбери любой вариант! Нам понадобится ещё одна переменная, которая будет хранить размер самого крупного цветка и позволит сравнивать его с раз- мерами других цветов: если будет найден больший цветок, то его размер заменит содержимое переменной. 1. Создай переменную максимальный размер. 2. Добавь в основной скрипт для Цветка команду обнуления пере- менной максимальный размер. 3. Создай блок если максимальны!!. 203
4. Определи блок если максимальный следующим образом (рис. 25.8): если максимальный размер < размер , го задать максимальный размер ▼ значение размер Рис. 25.8 5. Добавь в блок если максимальный выделен ие/изменение Цвет- ка максимального размера тем или иным способом — при усло- вии: если его размер совпадает с максимальным размером. Например, наибольший цветок начинает сверкать (рис. 25.9): Рис. 25.9 6. Запусти проект и убедись в том, что наибольший Цветок: • меняет свой вид; • возвращается к прежнему виду, когда другой Цветок стано- вится наибольшим. 7. Сохрани проект. Проект «Межгалактический полёт» Ты, наверное, замечал: когда едешь на машине или на поезде, объекты, расположенные вдоль дороги, мелькают перед глазами, а дальние — лес, поле или луна на небе — почти стоят на месте. Этот эффект носит название параллакса. 204
Параллакс используется и в веб-дизайне — для имитации трёх- мерности. Воспроизведём и мы эффект параллакса в проекте, имитиру- ющем полёт на сверхзвуковой скорости сквозь звёздное простран- ство. Кажущееся движение звёзд при таком движении происходит от центра к периферии. Для этого нам понадобится всего один спрайт Звезда и его кло- ны. Одни клоны будут двигаться быстрее, другие медленнее, третьи почти оставаться на месте. Всё вместе будет создавать эффект объ- ёмности пространства. 1. Создай фон Космос — чёрного или тёмно-синего цвета. 2. Создай спрайт Звезда в виде белого или светло-жёлтого круга. 3. Составь следующий скрипт для Звезды: • спрятаться; • создать 10 000 клонов. Поведение клонов будет описываться следующим скриптом (рис. 25.10): когда я начинаю как клон повторять всегда движение действия, если край I проверка видимости I Рис. 25.10 4. Создай скрипт по образцу (см. рис. 25.10). Каждый клон будет иметь случайную скорость движения, слу- чайную яркость и случайный размер (в пределах разумного). 205
Переменные размер в Скретче есть, поэтому создадим только три переменные — яркость, vx и vy (vx и vy будут отвечать за ско- рость изменения координат, соответственно, х и у). 5. В каком инструментальном ящике находятся команды установ- ления размера и эффекта призрак'? 6. Создай три локальные переменные — яркость, vx и vy. Эти переменные будут хранить характеристики, которыми один клон отличается от других, а их значения будут задаваться в блоке настройка. 7. Определи блок настройка заполнением (заданием) переменных случайными числами в соответствии со следующей таблицей: Переменная Диапазон случайных чисел VX -240...240 vy -180...80 размер 0.5...3 яркость 0...100 8. Чтобы каждый новый клон оказывался дальше от зрителя, чем созданные ранее, добавь в блок настройка команду перехода в задний слой (ящик Внешность). 9. Чтобы наши Звёзды казались на разном расстоянии от зрителя, добавь в блок настройка команду, устанавливающую различную яркость (эффект призрак) разным клонам (рис. 25.11): установить эффект прозрачность * яркость Рис. 25.11 Двигаться наши звёзды будут от центра к периферии. Это зна- чит, что координаты х и у будут в каждую единицу времени изме- няться на величины vx и vy соответственно. При этом сделаем так, чтобы более яркие звёзды двигались более быстро, а размер звёзд по мере их удаления от центра постепенно увеличивался — как это бывает при приближении движущихся объектов к наблюдателю. 10. Определи блок движение следующим образом (рис. 25.12): 206
опреснить движение изменить х на ( яркость RI vx ) изменить у на яркость *Й vy Рис. 25.12 Блок проверка видимости составим из таких соображений: пока звезда находится в пределах центра сцены, она не видна; когда же удаляется от центра на некоторое расстояние, становится видимой (рис. 25.13): определить проверка видимости Рис. 25.13 11. Составь блок проверка видимости в соответствии с рис. 25.13. Блок действия, если край проверяет, не дошла ли Звезда до края сцены. Если дошла, то снова вызывается настройка: вместо ушедшей за пределы сцены возникает новая звезда в центре сце- ны — с новой скоростью, направлением, яркостью и размером. и Подсказка: воспользуйся операторами модуль * Гйложениь* • ? модуль * от положение у , вычисляющими модуль координат х 207
12. Какими должны быть ограничения на значения координат х и у? ________________________________________________________ 13. Какой логической операцией надо соединить условия на значе- ния координат х и у — или или 14. Составь блок действия, если край. 15. Можно ли блок действия, если край заменить на команду если касается края, оттолкнуться и почему? 16. Активируй проект и проверь: • образуются ли клоны спрайта Звезда? Если нет, проверь, как составлен основной скрипт; • если в блоке когда я начинаю как клон оставить одну коман- ду настройка, то располагаются ли все звёзды в центре сцены? • имеют ли звёзды различную яркость, скорость и размер? • не иссякает ли поток звёзд со временем? Если иссякает, про- верь правильность сборки блока действия, если край; • равномерно ли распределяется поток звёзд по сцене? • создаётся ли эффект объёмности сцены? 17. Сохрани проект. 18. Подумай, кого или что ещё можно добавить в этот проект? 208
26. Проект «Подводная охота» Теперь применим наши знания в более сложном проекте. Попы- таемся воспроизвести известную в Интернете игру * Подводная охо- та»: небольшая рыбка, управляемая стрелками, старается увернуть- ся от более крупных рыб и съесть более мелких. При этом каждая удачная для рыбки охота увеличивает её в размере, а столкновение с более крупной рыбой грозит ей гибелью игра заканчивается. Рис. 26.1 1. Создай спрайт Рыбка в двух костюмах — с открытым ртом и с закрытым. На рис. 26.1 — это спрайт Shark (в центре сцены), взятый из Коллекции Скретча. 2. Создай переменную рост. Она будет отслеживать размер Рыбки, и её содержимое будет доступно всем объектам проекта. 3. Создай два блока — начальное положение и управление. 4. Определи блок начальное положение: • место, в котором Рыбка будет начинать игру например, в центре сцены; 209
• костюм — с закрытым ртом; • стиль вращения — влево-вправо; • начальный размер — значение переменной рост. Например, 35. 5. Определи блок управление подобно тому, как мы определяли его для Кота, управляемого стрелками в проекте «Лабиринт». 6. Составь основной скрипт по образцу (26.2): когда пажа, I понюряи, всегда установить размер рост % » — - управление Рис. 26.2 7. Запусти проект и проверь: • когда флаг нажат, Рыбка оказывается в центре сцены; • Рыбка управляется стрелками. 8. Создай спрайт Добыча как можно с большим числом костю- мов — рыб и других морских обитателей. Этот спрайт будет имитировать всё разнообразие подводного мира. Мы создадим четыре клона Добычи, спрятав для простоты ори- гинал. 9. 10. Поскольку наша Добыча должна уметь плыть и реагировать тем или иным образом на встречу с Рыбкой, создай два блока — НС 7 8 * * 1113 ГПД111, Создай основной скрипт для Добычи, состоящий из команд: • спрятаться; • создание 4 клонов. 210
Скрипт когда я начинаю как клон, по идее, должен был бы вы- глядеть так, как показано на рис, 26.3. когда я начинаю как клон повторять всегда Рис. 26.3 Однако в этом случае, пока добыча плывёт, она не сможет реа- гировать на встречу с Рыбкой, и наоборот. Эти действия должны выполняться одновременно! Поэтому нам нужно создать два скрипта когда я начинаю как клон (рис. 26.4): Рис. 26.4 когда я начинаю как клон • w ’ * * ’ ’Л * “Ч ' повторять всегда встреча Обсудим содержание блоков плыть и встреча. Наша добыча в случайном костюме должна появляться в слу- чайном месте на одном из краёв сцены, плыть в случайную точку противоположного края сцены и исчезать. На каком именно крае — левом или правом — будет появляться Добыча, будем решать тоже с помощью генератора случайных чисел, имитируя подбрасывание монетки (рис. 26.5): 211
Рис. 26.5 11. Какой параметр в команде перейди в х отвечает за по- падание на край сцены? Заполни таблицу, указав в пустых ячейках число или диапазон чисел: Положение Координата х Координата у Левый край Правый край 12. Определи блок плыть, обеспечивающий: 1)задание значения локальной переменной размер — случайным числом, например, от 1 до 100; 2) задание клону случайного костюма; 3) установку нужного стиля вращения. Какого? _______________ 4) появление клона на сцене (ведь оригинал мы спрятали — см. п. 10); 5) выбор точки появления клона — на правом или левом краю сцены в зависимости от сгенерированного случайного числа (см. блок-схему на рис. 26.5); 6) 7) 13. движение клона (команда плыть) к противоположному краю сцены со случайной (от 5 до 9) скоростью; исчезновение клона края сцены. 14. Проверь: после достижения им противоположного Активируй команду проекта!). для Добычи (а не для всего • создались ли четыре клона? • появляются ли они с обоих краёв сцены? • разные ли у них: 212
о скорость; о размер; о вид? • исчезают ли клоны, достигнув противоположного конца сцены? Чтобы оценить результат встречи Добычи с Рыбкой, нужно сравнить их размеры. 15. Где хранится размер Рыбки?__________________________________ 16. Определи блок встреча для Добычи согласно блок-схеме (рис. 26.6): Рис. 26.6 17. Придумай, какой звук издаст Добыча — радостный, кровожад- ный или победный, если она окажется больше Рыбки? 18. Запиши звук или найди его среди звуков в Коллекции Скретча. 19. Как ты думаешь, кому адресовано сообщение: *Ешь!->? ------ 20. Как, по-твоему, Рыбка должна прореагировать на встречу с До- бычей? _______________________________________________________ 21. Добавь скрипт для Рыбки когда я получу ешь! ▼ 22. Можно ли было привязать блок встреча не к Добыче, а к Рыб- ке? Если да, то как? Если нет, то почему? 213
23. Запусти проект и проверь, что происходит при встрече Рыбки с Добычей: • исчезает ли Добыча после её съедения Рыбкой? • вырастает ли Рыбка после съедения Добычи? Как, с помощью чего это можно проверить? ________________________________ • заканчивается ли игра, если Добыча оказывается слишком большой для Рыбки? Теперь надо подумать о том, как и когда закончится игра, если Рыбка станет больше всех своих потенциальных противников! 24. Определи по блоку плыть, какой в твоём проекте возможен максимальный размер Добычи? 25. Создай ещё один блок — конец. 26. Определи его — например, так (рис. 26.7): Я - хозяйка подводного мира! Рис. 26.7 27. Каким должно быть условие в блоке конец? 28. Добавь команду конец в основной скрипт для Рыбки. 29. Запусти проект и сыграй за Рыбку. 30. Какого размера твоей Рыбке удалось достичь за первую же игру? 31. Возможно, кое-какие параметры стоит изменить — например, первоначальный размер, время ожидания добычи и т. п. 32. Внеси изменения в проект, если это требуется. 33. Сохрани проект. 214
27. Создание мультфильмов Скретч — отличный инструмент для создания мультфильмов. Ведь, как ты уже убедился, в нём можно создавать декорации и персонажи, оживлять и озвучивать действующих лиц, не только организовывать последовательные действия, но и согласовывать па- раллельные процессы... Обычно создание мультфильмов подразумевает несколько этапов. I. Написание сценария. II. Создание персонажей. III. Создание декораций. IV. Раскадровка. V. Монтаж, или соединение отдельных кадров в мультфильм. VI. Озвучание. VII. Демонстрация. Раскадровка — это прорисовка основных сцен мультфильма в статике. Она помогает понять, как примерно будет выглядеть мультфильм. Проект «Отбросить коньки» Покажем процесс создания мультфильма на примере. В каче- стве сценария возьмём стихи Андрея Усачёва «Отбросить коньки»: Пришёл бегемот На каток у реки. Подумал чуток... И ОТБРОСИЛ КОНЬКИ! Подумай, сколько разных сцен (декораций) нам понадобится? И в зависимости от этого — на сколько частей стоит разбить чте- ние стихотворения? В нашем случае напрашивается такое разбиение: 1) Пришёл бегемот На каток у реки; 2) Подумал чуток... 3) И отбросил коньки! 215
Первая часть определяет обстановку — Каток у реки. И главный персонаж — Бегемот. Кроме того, на катке могут быть другие — второстепенные — персонажи. Например, такие как на рис. 27.1. Рис. 27.1 Вторая часть даёт простор воображению художника-мультипли- катора: что случилось с Бегемотом? Возможно, он зазевался и стол- кнулся с другим конькобежцем (рис. 27.2): Рис. 27.2 216
Или лёд под ним оказался слишком тонкий, и он провалился? Или его закружили в танце другие фигуристы? А может, его конь- ки оказались не по размеру? Придумай свой вариант!__________________________________ Третья часть — «И отбросил коньки!» — тоже может быть про- иллюстрирована по-разному: Бегемот с досадой выбросил коньки, или коньки от удара извне разлетелись в разные стороны (рис. 27.3)! Ведь и само выражение «отбросить коньки» имеет два значения — дословное и переносное! КОНЕЦ Рис. 27.3 Что выберешь ты? ________________________________________ Теперь, когда тобой продуманы сюжет и действующие лица, мо- жешь приступать к созданию мультфильма. И в первую очередь мы запишем текст стихотворения на микрофон. Работа со звуком 1. Создай новый проект. 2. Активируй фон. 3. Перейди на вкладку Звуки (рис. 27.4): 217
4. Нажми на кнопку Выбрать звук (внизу вкладки) и выбери пункт Записать (рис. 27.5): Рис. 27.5 Откроется окно (рис. 27.6): Записать злу к х Записать Рис. 27.6 5. Нажми на кнопку Записать и прочти в микрофон первую часть стихотворения. 6. Чтобы прослушать то, что получилось, нажми на кнопку Про- играть (рис. 27.7): 218
Рис. 27.7 7. Если ты доволен качеством записи, нажми кнопку Сохранить, если нет — кнопку Перезаписать. 8. Новая запись будет храниться на вкладке Звуки. Давай её рассмотрим! Рис. 27.8 219
Как видно из рис. 27.8, записи можно придумать свое имя — так её будет легче отличить от других. 9. Переименуй название запись!, например, в «1 часть». 10. Нажимая на разные кнопки под записью — Быстрее, Медлен- нее, Эхо и т. д., послушай, как меняется звук. 11. Какой эффект, по твоему мнению, лучше всего подойдёт для чтения текста к мультфильму «Отбросить коньки»? 12. Чтобы вернуть предыдущий вариант звучания, воспользуйся кнопкой Отменить: Точно так же запиши и переименуй вторую и третью части сти- хотворения. Раскадровка 1. Создай необходимое количество фонов. Например, такие: • заставка мультфильма — с названием и автором стихотворе ния; • каток у реки — общий план; • каток вокруг Бегемота — крупный план; • конец. 2. Заполни пропуски в таблице: Сигнал Звук Фон Персонаж Действие Флажок нажат Заставка — — Сменить фон 1 часть Каток у реки Бегемот. Фигурист 1. Фигурист2. ФигуристЗ Стоит на берегу. Катаются на коньках Когда я получу сигнал «часть 2» 2 часть Когда я получу сигнал «часть 3» 3 часть Конец Как видно из таблицы, переходить от одной части мультфильма к другой мы будем, посылая и принимая определённые сигналы. Так легче согласовывать действия персонажей и, если потребуется, вносить изменения в проект. Благодаря передаче сигналов нам не придётся высчитывать вре- мя, через которое будет происходить смена фонов и чтение следую- щей части стихотворения. Чтение стихов мы привяжем к сцене. 220
3. Создай скрипты для сцены согласно таблице. Например, скрипт, описывающий смену фона Заставка на фон Каток у реки может выглядеть так, как.показано на рис. 27.9 когда Ц нажат переключить фон на Заставке ждать секунд переключить фон на Каток у реки * играть звук запись! ▼ до конца Рис. 27.9 (Команда Звуки.) ----- --------------------- играть звук яг до конца __________________________________J находится в ящике Работа над персонажами 1. Создай спрайт Бегемот в двух костюмах — с коньками и без коньков. 2. Создай спрайты фигуристов (их количество — па твоё усмотре- ние). Если каток большой и фигуристов на нём много, можно использовать клоны спрайта Фигурист в разных костюмах. 3. Создай скрипт для фигуристов по образцу (рис. 27.10): Рис. 27.10 221
4. Какая команда больше подойдёт для имитации катания на коньках — идти или плыть? ___________________________________ 5. Команда кататься может быть совсем простой: • проехать из одной точки сцены к другой; • развернуться; • проехать обратно. Обрати внимание: если персонаж едет от зрителя вглубь сце- ны, он должен уменьшаться в размере. И наоборот: увеличи- ваться при движении к зрителю. 6. Какая команда задаёт постепенное изменение в размере? 7. Создай скрипты для Бегемота согласно раскадровке. Монтаж и демонстрация 1. Запусти мультфильм и проверь: • не нужно ли изменить темп чтения стихов? • все ли персонажи появляются вовремя и вовремя исчезают? 2. Покажи мультфильм своим друзьям и родителям. Мнение зрителей всегда очень важно для художника! 3. Какие их пожелания и советы ты возьмёшь на вооружение? 4. Внеси, если нужно, изменения в мультфильм. 5. Сохрани проект. Самостоятельная работа Создай мультфильм на стихи Андрея Усачёва «Пропала охота»: Охотник хотел подстрелить бегемота. Чихнул бегемот - И ПРОПАЛА ОХОТА. Что означает фразеологический оборот «пропала охота»? 222
Заключение Теперь, когда ты многому научился и создал целую коллекцию проектов, пора делиться своими работами с другими! Для этого не- обходимо зарегистрироваться на сайте https://scratch.mit.edu: На вкладке Создать ты сможешь загрузить на сайт созданные ранее проекты: А затем нажать кнопку Поделиться. Откроется окно, в котором можно подробно описать, как называется проект, кем и как в нём можно управлять; если это игра, то в чём она заключается, и т. д.: Untitled 0 Вампи ИГР* провггл Инструкции Расскажи исполыюаать гтои проект (напрцыф. коню клоошии ипмимит»,) I I Прим вмени я н благодарности • Ка> ты созвал эяхмп принт7 Исполыюваг. w ты t/ИХю. npcjpMUMJ или рисуняи Орумм пюОлй9 ГЬЬпмпЛири их 223
Точно так же и ты сможешь просматривать на сайте чужие истории, играть в чужие игры, заглядывая к ним внутрь, исследуя скрипты и добавляя понравившиеся проекты к себе в студию. Скретч-сообщество — это ещё и возможность общения с едино- мышленниками и наставниками, обсуждения и выражения благо- дарности тем, кто делится с тобой своими знаниями и идеями. Выразим и мы благодарность создателям Скретча — команде учёных и программистов из Массачусетского технологического ин- ститута под руководством профессора Митчелла Резника, а также Евгению Патаракину, доценту Нижегородского университета, кото- рый первым перевёл Скретч на русский язык. 224
Программирование - это грамотность XXI века! Книги новой серии «Школа юного программиста» издательства «Лаборатория знаний» построены на методике пошагового обучения программированию. Следуя этой методике, любой желающий, от школьника до студента вуза, сможет научить- ся писать программы, разрабатывать мобильные приложения и компьютерные игры и даже освоить технологии машинного обучения и нейросетей. Издательство «Лаборатория знаний» рекомендует: • «Учимся вместе со Scratch: программирование, игры, робото- техника» • «Scratch 3.0. Творческие проекты на вырост» • «Создаем игры с Kodu Game Lab» • «Разработка мобильных приложений. Первые шаги» • «Программирование на Python. Первые шаги» • «Компьютерное зрение на Python. Первые шаги» • «WEB-разработка. Первые шаги» • «Машинное обучение для детей. Практическое введение в искусственный интеллект» • «Простая электроника для детей. Девять простых проектов с подсветкой, звуками и многое другое» • «Уроки робототехники. Конструкция. Движение. Управление» • «Ардуино®. Полный учебный курс. От игры к инженерному проекту» • «Конструируем роботов. Дроны. Руководство для начинающих» • «Конструируем роботов от А до Я. Полное руководство для начинающих» • «Робофишки» и «Технофишки»: сборники проектов по образо- вательной робототехнике и конструированию своими руками • Пособия для подготовки к ОГЭ, ЕГЭ, олимпиадам по информати- ке и поступлению в технические вузы