Текст
                    ЮЛИЯТОРГАШЕВА Q+
ПЕРВАЯ КНИГА
ЮНОГО
ПРОГРАММИСТА
УЧИМСЯ ПИСАТЬ ПРОГРАММЫ

Юлия Владимировна Торгашева Первая книга юного программиста. Учимся писать программы на Scratch Серия «Вы и ваш ребенок» Заведующая редакцией Ю. Сергиенко Ведущий редактор Н. Римицан Художник С. Маликова Корректоры Н. Сидорова, Г. Шкатова Верстка И. Джумков ББК 32.973.23 УДК 004.3 Торгашева Ю. В. Т60 Первая книга юного программиста. Учимся писать программы на Scratch. — СПб.: Питер, 2016. — 128 с.: ил. — (Серия «Вы и ваш ребенок»). ISBN 978-5-496-01790-9 Не сомневаюсь, что ты любишь играть на компьютере, телефоне или планшете и смотреть ЗО-мультфильмы. А знаешь, как их делают? Для этого нужны программы — наборы команд, которые приказывают компьютеру двигать героев по экрану. А теперь — самое главное. Ты можешь сам делать такие программы! Придумывать игры со своими героями, рисовать мультфильмы — все, что захочешь. Для этого создали специальную детскую среду программирования Скретч. Все команды в ней нарисованы как цветные значки-блоки, из которых удобно собирать программы. Это похоже на конструктор «Лего». Просто берешь кубики и собираешь сложную программу или игру. Давай вместе отправимся в удивительный мир программирования. 6+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ISBN 978-5-496-01790-9 © ООО Издательство «Питер», 2016 © Серия «Вы и ваш ребенок», 2016 Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письмен- ного разрешения владельцев авторских прав. ООО «Питер Пресс», 192102, Санкт-Петербург, ул. Андреевская (д. Волкова), 3, литер А, пом. 7Н. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.13.000 — Книги печатные для детей. Подписано в печать 09.07.15. Формат 84x108/16. Усл. п. л. 13,440. Тираж 3000. Заказ 0000. Отпечатано в полном соответствии с качеством предоставленного электронного оригинал-макета в типографии филиала АО «ТАТМЕДИА» «ПИК «Идел-Пресс». 420066, Казань, ул. Декабристов, 2. E-mail: idelpress@mail.ru
СОДЕРЖАНИЕ Привет!..............................................6 Для мам и пап........................................7 Что должен знать и уметь ребенок для работы в Скретч................................7 Безопасность в интернете...........................8 Из чего состоит эта книга..........................9 Системные требования...............................9 Работа в Скретч...................................10 Загрузка и установка..............................11 ПЕРВАЯ ПРОГРАММА. УЧИМ ГЕРОЕВ ХОДИТЬ И ПОВОРАЧИВАТЬСЯ.............12 Окно программы......................................12 Создаем первую программу............................14 Сохраняем свою программу............................16 Библиотека спрайтов.................................17 Что такое система координат.......................20 Блоки из группы «Движение»..........................22 Что такое угол поворота?..........................23 Крутой поворот....................................24 Вращение спрайта..................................26 Блоки из группы «События»...........................26 Блоки из группы «Управление»........................28 ТРА-ЛЯ-ЛЯ-ЛЯ... ДИРИЖИРУЕМ ОРКЕСТРОМ............................30 Блоки из группы «Звук»..............................30 Добавление звуков из библиотеки...................31 Редактирование звуков.............................32 Запись звуков.....................................33 Громкость.........................................34 Темп..............................................35 ГРАФИЧЕСКИЙ РЕДАКТОР & СКРЕТЧ И НОВЫЕ СПРАЙТЫ..........................36 Какими бывают графические редакторы..................36 чу Рисуем в Скретч......................................38 \Ц\ Создание нового спрайта в редакторе Скретч.........38 Создание костюмов.................................40 Сохранение нового спрайта в отдельный файл........42 Векторный редактор...................................42 I
Слои изображения...................................44 Группировка фигур..................................45 БЛОКИ «ВНЕШНОСТЬ» И КОРОТКИЕ МУЛЬТФИЛЬМЫ...........................46 Анимация.............................................47 Диалоги..............................................48 Блоки «Внешность» для спрайтов.......................49 Блоки «Внешность» для сцены..........................51 ПОЧЕМУ МЫ ЛЮБИМ ИГРЫ И КАК ПРИДУМЫВАЕМ ИХ.............................52 О чем будет наша история?............................52 Какие игры мы любим..................................53 Гонки..............................................53 Платформеры........................................54 Головоломки........................................55 Квесты.............................................56 Стратегии..........................................57 Придумываем свою игру................................58 Как превратить идею в игру...........................59 Что может пригодиться в играх........................60 БЛОКИ УПРАВЛЕНИЯ И ИГРА «НАКОРМИ ЗАЙЦА»...........................62 Паузы................................................62 Циклы................................................63 Блок «Повторять всегда»............................63 Блок «Повторить определенное число раз»............64 Блок «Выполнить при условии».......................65 Блок «Выполнить при условии... иначе выполнить...».66 Блок «Повторять, пока не выполнится условие».......66 Блок «Стоп»........................................67 Клонирование.........................................67 Счет в игре..........................................69 БЛОКИ «ПЕРО» И МАТЕМАТИЧЕСКИЕ УЗОРЫ...........................72 Шарфики и каляки-маляки..............................72 Шарфики............................................72 Каляки-маляки......................................74 Блоки группы «Перо»..................................75 Блоки из группы «Операторы»..........................77 Математические операторы...........................77 Строковые операторы................................80 Условные операторы.................................80
ПЕРВАЯ БОЛЬШАЯ ИГРА «МОРКОВКОПАД»................................86 Игра «Морковкопад»...............................87 Рисуем фоны....................................88 Скрипт морковки................................89 Добавь еще морковок............................90 Скрипты для Зайца..............................91 Конец игры.....................................94 Добавляем приз — капусту.......................95 Что можно изменить в программе.................95 «ОХОТНИКИ ЗА ПРИВИДЕНИЯМИ» ВЫХОДЯТ НА ТРОПУ ВОЙНЫ........................96 Инвентарь.........................................97 Добавляем вторую палочку и волшебный свет.........97 Добавляем фон.....................................99 Добавляем привидения..............................99 Добавляем сообщение о победе и проигрыше.........100 Добавляем скрипты для фонов, волшебника и привидений..........................102 Общая логика игры..............................102 Скрипт волшебника................................103 Второй скрипт волшебника.......................104 Скрипты привидения.............................105 Больше привидений..............................106 Скрипт перехода на следующий уровень...........107 Скрипты победы и поражения.....................108 Как сделать код игры короче....................110 Как сделать игру сложнее и интереснее..........113 СОЗДАЕМ НОВЫЕ БЛОКИ И ВЫВОДИМ НА ПОЛЕ БОЯ «ТАНЧИКИ»..............114 Общее описание игры.................................115 Инвентарь...........................................116 Танк появляется на поле.............................118 Танки двигаются и сталкиваются......................119 Выстрел во врага....................................120 Наш танк подбит.....................................121 Поведение снаряда...................................121 На сцене появляется враг............................123 Выстрел врага.......................................125 Врагов становится больше............................127 Победа!.............................................128
ПРИВЕТ! Не сомневаюсь, что ты любишь играть на компьютере, телефо- не или планшете и смотреть 30-мультфильмы. А знаешь, как их делают? Для этого нужны программы — наборы команд, которые при- казывают компьютеру двигать героев по экрану. А теперь — самое главное. Ты можешь сам создавать такие про- граммы! Придумывать игры со своими героями, рисовать мульт- фильмы — все, что захочешь. Для этого придумали специальные детские среды программирования. В них команды нарисованы как цветные значки-блоки, из которых удобно собирать програм- мы. Это похоже на конструктор «Лего». Просто берешь кубики и собираешь сложную программу или игру. Одна их таких специальных сред называется Скретч (Scratch). Именно ею мы и займемся. Вот как выглядят программы, которые делают в Скретче дети: В английском слово scratch имеет сразу несколько зна- чений. Во-первых, это «царапина», поэтому символом Скретч сразу стал кот. Во-вторых, в английском язы- ке есть выражение «from scratch», которое означает «начинать с чистого листа или делать что-то с самого начала». Кота из Скретч русские дети сразу прозвали Царапкой. Царапка умеет делать множество вещей и поможет нам создавать интересные программы. Поехали?
ДЛЯ МАМ И ПАП ЧТО ДОЛЖЕН ЗНАТЬ И УМЕТЬ РЕБЕНОК ДЛЯ РАБОТЫ В СКРЕТЧ Скретч разрабатывался специально для детей младшего и средне- го школьного возраста. Поэтому для его изучения и создания про- стых игр и программ хватит знаний и навыков начальной школы (иногда чуть больше). Мы полагаем, что начинающий работать в Скретч ребенок: • умеет читать по-русски; • способен управлять мышью, набирать простой текст и вво- дить числа при помощи клавиатуры; • понимает, что такое «открывать» и «сохранять» файл, и умеет находить файлы на своем компьютере; • умеет сравнивать числа, оперировать десятками и сотнями; • знаком с основными математическими операциями; • знаком с такой мерой времени, как секунда; • понимает, что такое случайный выбор числа из диапазона чисел. Многие понятия, которые используются в Скретч, известны любому ребенку из обыч- ных настольных игр. Простые «ходилки» познакомили его со случайным выбором чис- ла (оно выпадало ему на кубике) и с идеей условного перехода («если, то»). «Морской бой» и шахматы дают представление о коор- динатной разметке поля. Игра в «данетки» объясняет понятия множеств и подмножеств объектов. Если у ребенка возникают пробле- мы с новыми понятиями в Скретч или в школь- ном курсе информатики, ищите и вспоминайте знакомые ему примеры.
БЕЗОПАСНОСТЬ В ИНТЕРНЕТЕ Для работы на сайте Скретч компьютер должен быть подключен к интернету. В целях безопасности родители должны продумать, как ребенок будет пользоваться интернетом. Необходимо ограничить посещение сайтов, которые могут на- нести вред компьютеру и/или недопустимых для ребенка с мо- ральной точки зрения. Необходимо ограничить доступ к финансовым сервисам, чтобы предотвратить случайные или неосознанные покупки. Ребенок должен понимать, чем чревато раскрытие информации о себе в интернете. Хорошие советы и рекомендации для родителей по поводу обучения детей безопасности в интернете можно найти на сле- дующих ресурсах: • http://www.microsoft.com/ru-ru/security/family-safety/ childsafety-internet.aspx (сайт компании Microsoft); • http://www.onlandia.by/html/etusivu.htm (интерактивный курс по интернет-безопасности для детей). Обратите внимание ребенка на то, что в проектах Скретч, кото- рые будут выкладываться в интернет, нельзя использовать свое имя и фотографии и имена и фотографии друзей, раскрывать свой адрес, номер школы и другую информацию о реальной жизни. На школьных компьютерах обычно настраивается список сайтов, которые может посещать ученик, а все остальные запрещены. В домашних условиях вы можете варьировать методы в зависи- мости от того, как и какие компьютеры использует ребенок. • Программы родительского контроля позволяют указывать как разрешенные, так и запрещенные интернет-адреса. • Антивирусные программы ограничивают доступ к потенци- ально опасным сайтам. • Сервисы безопасных DNS создают списки вредоносных, мо- шеннических и фишинговых веб-сайтов и не дают пользова- телю переходить по ним. Подробнее об этом можно узнать на сайтах: • http://dns.yandex.ru/ (рус.) • https://dns.norton.com/dnsweb/homePage.do (англ.)
ИЗ ЧЕГО СОСТОИТ ЭТА КНИГА В каждой из девяти глав этой книги не только разбираются свой- ства и команды программы Скретч, но и даются примеры про- грамм и игр, созданных при помощи изучаемых команд. Вся важная информация в книге выделена: Внимание! Речь идет о важном свойстве Скретч или правиле, без которого программы не будут работать вовсе или будут работать с ошибками. Подскажет приемы быстрой работы в Скретч и эффективного программирования. Поможет узнать, как поменять команду или параметр, чтобы программа работала по-другому. Дает дополнительную информацию, без ко- торой можно обойтись, но которая позволяет лучше понять Скретч. В конце книги вы найдете три игры, в которых используются все изученные команды Скретч. СИСТЕМНЫЕ ТРЕБОВАНИЯ Офлайн-редактор Скретч работает в операционных системах MacOS, Windows и некоторых вариантах Linux (Debian/Ubuntu). Для просмотра и создания проектов скретч-браузер должен под- держивать Adobe Flash Player. Устройства на iOS Flash недоступен для устройств под управлением iOS, поэтому на iPAD работать в Скретч, к сожалению, не получится. На iPad работает приложение Скретчк, предназначенное для детей 5-7 лет, оно выглядит несколько иначе, но работает по тому же принципу. Скачать его можно с сайта: http://www.scratchjr.org/
Устройства на Android С переходом на платформу AIR компания Adobe перестала под- держивать Flash для Android, и поэтому Adobe Flash Player нельзя скачать из Google Play. Впрочем, вы можете воспользоваться сто- ронним источником и установить его в устройство самостоятельно. Сейчас разрабатывается новая версия Скретч на HTML5, что позволит работать с редактором Скретч на любом мобильном устройстве. РАБОТА В СКРЕТЧ В Скретч можно работать прямо на сайте программы: http://scratch.mit.edu/. Онлайновый редактор позволяет создавать проекты и открывать код проектов других пользователей. Перейти в редактор можно по ссылке «Создать» на веб-сайте Скретч: Сиада гь Исснедуй Обсуди ib Помииф Р rinwninnd Создавайте истории, игры и мультфильмы Делитесь с людьми по всему миру A creative learning coirwriunrly with 5 006 809 projects shared | | Регистрация Вход Избранные проекты Избранные студии Эта же версия Скретч (Скретч 2.0) доступна и офлайн: ее можно скачать и создавать проекты без доступа в интернет.
Для загрузки проекта на сайт и общения с другими пользователя- ми понадобится регистрация. Для нее нужно имя пользователя, написанное латиницей, и адрес электронной почты. Если у ребен- ка нет собственного адреса, помогите его создать. ЗАГРУЗКА И УСТАНОВКА Чтобы скачать Скретч, воспользуйтесь ссылкой http://scratch.mit. edu/scratch2download/. Помимо Скретч 2.0, существует более старая версия — Скретч 1.4 — у нее меньше возможностей, но более стабильная работа (http://scratch.mit.edU/scratch_l.4/). В версиях 1.4 и 2.0 экран выглядит по-разному, но названия бло- ков совпадают. Обратите внимание, что формат файлов проекта зависит от версии. В 1.4 файлы имеют расширение .sb, а в 2.0 — .sb2. Проекты, созданные в 1.4, можно открыть в 2.0, а вот наобо- рот — нет (проекты, разработанные в версии 2.0, открыть в версии 1.4 не получится).
ПЕРВАЯ ПРОГРАММА. УЧИМ ГЕРОЕВ ХОДИТЬ И ПОВОРАЧИВАТЬСЯ ОКНО ПРОГРАММЫ Ура! Мы установили Скретч, открыли редактор и можем присту- пать к делу. Вот наш главный инструмент — рабочий экран редактора Скрет- ча. Здесь мы будем создавать игры и программы. Меню ф) Файл* Редактировать * Подсказки ЛЬо£ $ X м © Странен Ц| YWByaT' Область спрайтов
Спрайты. Это герои программы (объекты) — люди, животные, фантастические существа или предметы. Все действия в програм- ме происходят со спрайтами. Скрипты. Программы, управляющие спрайтами, — цепочки блоков-кирпичиков. Для каждого спрайта мы будем создавать один или несколько скриптов. Из чего состоит экран Сцена, или игровое поле. Здесь запускается программа. Сейчас ты видишь на этом поле Царапку — это спрайт. Он готов к работе и ждет, когда ты дашь ему команду действовать. Область скриптов. Скрипт — это программа, по которой дей- ствует наш герой (спрайт). В области скриптов мы будем собирать программы из блоков-кирпичиков. Внизу лежит Рюкзак: в него удобно складывать скрипты, которые используются с несколькими спрайтами. Облаешь данных спрайта. Здесь можно создавать спрайты и менять их свойства. Область меню. В верхней части расположено меню проек- та — команды сохранения и загрузки файлов, изменения размера сцены, подсказки, а также «горячие значки», которые быстро из- меняют свойства спрайта. С правого края меню находится ссылка для управления аккаунтом на сайте Скретч. Английским словом sprite (спрайт) называют разных загадочных су- ществ — фей, леших, домовых и русалок, а также световые вспыш- ки, которые иногда, непонятно почему, появляются над грозовыми облаками очень высоко в небе. Несколько десятков лет назад, когда компьютерная графика только появилась, спрайтами стали называть гра- фические объекты в программах — рисунки, фигуры, картинки. Почему выбрали именно это слово, доподлинно неизвестно. Может, потому что поведение программ бывает таким же загадочным, как жизнь леших и русалок?.. В компьютерных играх спрайтами называют графические объекты, а сами программы состоят из описания поведения спрайтов и их взаимоотношений. То же самое ты будешь делать в Скретч — соз- давать спрайты, задавать их действия и описывать, как они ведут себя, встречаясь друг с другом.
I Внешность | Звук | Перо | Данные | События | Управление | Сенсоры | Операторы | Новые блоки Все команды в Скретч выглядят как цветные блоки. Представь, что перед тобой 10 разноцветных ящиков. Из каждого ящика ты вынимаешь нужную команду-блок и перетаскиваешь в область скриптов. Пощелкай по этому меню — увидишь, как меняются списки блоков на экране. Блоки каждой группы обозначены своим цветом. Так их проще найти в программе. В группе «Звук» собраны команды управления звуками, в «Опе- раторах» — математические операции. Постепенно мы разбе- рем все группы и выясним, для чего предназначен каждый блок. Но создать первую программу ты можешь прямо сейчас. Позже ты заметишь, что не все блоки можно соединить, так что ты не сможешь сложить вместе несовместимые команды. СОЗДАЕМ ПЕРВУЮ ПРОГРАММУ Один герой у нас уже есть — это кот Царапка. Он будет выполнять действия по нашей команде. Перед тем как создавать программу, нужно придумать последовательность действий, которую будет выполнять Царапка, — алгоритм. В нашем случае он будет такой: При запуске программы Повторять бесконечно: Идти 30 шагов туда, куда направлен спрайт, Если встретится край, оттолкнуться.
Каждому блоку соответствует одно действие. Выбери любой из синих блоков и перетащи его вправо, в об- ласть скриптов. Если мы возьмем блок и снизу при- двинем к нему блок если на краю, оттолкнуться то они склеятся. когда щелкнут по если на краю, оттолкнуться идти Добавь блоки из групп «Управление» (оранжевый) и «События» (коричневый) и щелкни по зеленому флажку в правом верхнем углу сцены. Если все сделано правильно, Царапка начнет бегать! Он почему-то иногда переворачивается вниз головой, но скоро мы сможем это исправить. А пока — ура! Мы сделали первую программу! Поменяй число в блоке «идти» и снова отправь Царапку бегать. Что с ним произойдет? В белых окошках внутри блоков-команд находятся значе- ния (числа или слова), которые определяют особенности команды — скорость движения, расстояние, угол поворота. Они называются параметрами. Команда «идти 10 шагов» и «идти 40 шагов» — это одна и та же команда, которую Царапка (и другие герои программы) могут исполнять с раз- ными параметрами. L_________________ ©
СОХРАНЯЕМ СВОЮ ПРОГРАММУ _____ Мы много поработали, и теперь нужно сохранить наш проект. В верхней части сцены есть поле с именем проекта. Пока мы не назвали проект, это поле выглядит вот так: гип [ Untitled-8 L4J на YuliyaT (личный) Щелкни в поле ввода и напиши имя для своего проекта. Это можно сде- лать и русскими, и английскими буквами. Например: «Первые шаги Царапки». После этого в верхнем меню ре- дактора Скретч выбери команду «Файл». Откроется дополнительное меню: Редактировать ▼ Подсказки About |Первые ша на YuliyaT Новый Сохранить сейчас Сохранить как копию Нажми «Сохранить сейчас». Теперь в списке твоих проектов на сайте или в папке на компьютере появится про- ект с введенным тобой именем. Перейти к моим проектам Загрузить с компьютера Скачать на свой компьютер Возврат WJ-JD На компьютере проекты Скретч обычно сохраняются в пап- ке Скретч Projects, которую Скретч создает при установке. В Windows эта папка находится внутри папки «Документы». Готовые проекты можно загрузить на сайт Скретч и затем открывать их с сайта.
БИБЛИОТЕКА СПРАИТОВ Кот — это один из готовых спрайтов Скретч. Ты можешь взять готовый спрайт из библиотеки, нарисовать его сам, загрузить его из файла или с веб-камеры. Новый ооъекг / Й Й В области свойств спрайтов (спра- ва вверху) найди небольшое меню из значков — команд для получения спрайтов. дублировать удалить сохранить локальный файл скрыть СОВЕТ Наведи курсор мышки на любой значок — появится всплываю- щая подсказка. Идем в область спрайтов и добавля- ем новые действующие лица. Просто щелкни на значке добавления спрай- та из библиотеки. Изображения в библиотеке спрай- тов разложены по папкам. А нам сей- час понадобится папка «Животные». Найди мышку (вид сверху) и дваж- ды щелкни на ее изображении. Но- вый персонаж появится в области спрайтов редактора. Если тебе нужно удалить ненужный спрайт, щелкни на нем правой кнопкой мыши и наж- ми «Удалить». Библиотека спрайтов Все Животные Фантастика Люди I (редметы TpatKHupi Тема Замок Город Полет Holiday Музыка и танцы космос Спорт Подоодпый мир Идущие Тип Все Битовая карта вектор Апиа Воу1 Breakdancer2
ПРИМЕР ЦАРАПКА УЧИТСЯ ХОДИТЬ Дадим спрайту более сложное задание — обойти всю сцену с поворотами. Размер сцены Скретч — 400 шагов в ширину и 240 шагов в высоту. Запомни эти числа, они пригодятся, когда ты бу- дешь рассчитывать движения героев по экрану. Царапка отправляется в путь из левого нижнего угла и делает 400 шагов вправо. Затем он должен повернуть вверх и пройти, например, 200 ша- гов. Затем Царапка поворачивает налево, снова идет 400 шагов, поворачивает вниз и делает еще 200 шагов. Если мы все рассчи- тали правильно, то он должен оказаться в том же месте, откуда начал свой путь. Создай такой код: 4IIII 200 411II 10 о нашил Чтобы настроить параметр блока «по- вернуть», нажми черную стрелочку и выбери нужное значение из списка. (90) направо (-90) влево (0) вверх (180) вниз Контекстное меню поможет быстро вставить несколько одинаковых блоков. Вызвать это меню просто — достаточно нажать правую кнопку мыши, но его состав может меняться. В области скриптов наведи курсор на блок, который нужно размножить, и нажми правую кнопку мыши — появится короткое меню. Выбери пункт «дублировать». На экране возникнет копия блока (и все прицепленные к нему снизу блоки). Перетащи их в нужное место.
Перетащи Царапку в левый нижний угол и запусти скрипт, щелкнув по верхнему блоку. Ничего не происходит, Царапка стоит на том же месте. Неужели программа не работает? Работает. Просто Царапка пробежал по экрану так быстро, что мы этого не заметили. Он мгновенно оказался там же, где начал свое путешествие. Чтобы проследить, как он шагает по экрану, нужно дать Царапке команду ненадолго останавливаться, напри- мер, при поворотах. Для этого перейдем в группу темно-желтых блоков — секунд Для того чтобы вставить его перед каким-нибудь из бло- ков, нужно потянуть этот блок вниз. Цепочка блоков разъединится. 90 Расставь блоки ожидания на каждом углу сцены. Щелкни на первом блоке. Теперь Царапка на секунду замирает при повороте, и ты видишь, как он двигается по экрану. СОВЕТ Если в области скриптов остались ненужные блоки, их мож- но удалить при помощи правой кнопки мыши. Нажми ее и увидишь короткое меню, в котором есть пункт «удалить». Щелкни по нему, и блок исчезнет. Другой способ удалить блок — перетащить его обратно в группу блоков. Если случайно удалились нужные блоки, их можно вернуть на место с помощью меню «Редактировать».
ЧТО ТАКОЕ СИСТЕМА КООРДИНАТ В шагах удобно измерять простые передвижения по сцене. А что делать, если нужно поставить спрайт в определенную точку сце- ны или подвинуть его на очень маленькое расстояние? Для этого в Скретч используются координаты — адрес точки на сцене. Это как твой домашний адрес, только вместо номера дома и номера квартиры используют буквы х (икс) и у (игрек). Думаю, что ты уже знаком с числовой прямой. Координата «икс» располагается на горизонтальной числовой прямой. Координата «игрек» — на вертикальной числовой прямой. Если провести две прямые линии через координаты «икс» (вертикальную) и «игрек» (горизонтальную), то они пересекутся в одной точке. Значения «икс» и «игрек» называют координатами этой точки и обычно за- писывают как пару чисел в скобках через запятую. 7-.............Q 4- з- 2- 1- / ...Н<(5’3) : I I i I i I I I i x 123456789 (0,0) — центр системы координат Если подвигать мышкой по экрану, в правом нижнем углу сцены будут меняться значения у букв х и у. Сначала записывается значение по горизонтали, а только потом — по вертикали. Такая уж у математиков сложи- лась традиция. Переставлять эти числа нельзя! Получится совсем другая точка — как в случае с точками (5,3) и (3,5). Центр сцены — это точка с координатами «0,0». Направле- ния вверх и вправо обозначаются положительными числами, а вниз и влево — отрицательными, то есть числами со знаком «-» (минус).
Например, точки с координатами (15, 63) и (100, 56) всегда бу- дут находиться в правом верхнем квадрате, точки (-145, -12) и (-145, -170) — в левом нижнем, (220, -100) и (35, -18) — в пра- вом нижнем, а точки (-17,152) и (-78, 45) — в левом верхнем. I УГ9 >)НГЕРЕСгЮ Общая ширина сцены в Скретче составляет 480 точек, то есть вправо от нуля 240 точек, и влево тоже 240. Общая высота поля — 360 точек, то есть по 180 точек вверх и вниз от сере- дины экрана — точки с координатами (0,0). Тебе наверняка знакомы «Морской бой», шашки и шахматы. Во всех этих играх каждой клетке соответствует одна буква и одна цифра. В шахматах и морском бое горизонтальные ряды обозначаются числами, а верти- кальные — буквами. Каждая клетка получает собственное название, которое нельзя перепутать с другими. Так что любую партию можно записать на бумаге и играть, не глядя на доску или даже по телефону. Представляешь, в шахматы можно играть даже по переписке! Игрок отправлял письмо со следующим своим ходом сопернику, и не мог же он написать «ладья идет на три клетки вперед» — так легко запутаться. Точное положение Царапки (его координаты) помогут узнать специальные блоки. Если поставить галочки, на сцене появятся два прямо- угольника с информацией о положении спрайта. Запусти скрипт с Царапкой, и в левом верхнем углу окажутся две надписи (их можно перетащить в другое место). Координаты спрайта на экране соответствуют се- редине прямоугольника, который можно описать вокруг спрайта. В зависимости от формы картинки эта точка может оказаться в разных местах экрана. Помни об этом, задавая координаты для переме- щения спрайта. J
БЛОКИ ИЗ ГРУППЫ «ДВИЖЕНИЕ» Теперь стало понятно, как использовать другие блоки из группы «Движение». Все они перемещают спрайт в место на сцене с координатами (х, у). Если нужно переместить спрайт по горизонтали, то меняется только число х. Если по вертикали — то только число у. на краю, оттолкнуться Этот блок командует спрайту оттол- кнуться и развернуться при столкно- вении, чтобы спрайты не разбегались с поля. секунд в точку х Этот блок заставляет спрайт двигаться медленно. Обычно ты не замечаешь, как спрайт оказывается в другом месте, — компьютер работает очень быстро. Для того чтобы сделать движение видимым, и при- думали этот блок. указатель мышки Этот блок переносит спрайт в место, где находится указатель мыши или другой спрайт, так что координаты указывать не нужно. Блок сам узнает, где находится курсор мыши, и сразу передает информацию спрайту. Тот немедленно прыгает в указанное место. Кажется, что спрайт «приклеил- ся» к курсору мыши и передвигается вместе с ним. Этот блок пригодится и в играх, и в программах. ПРИМЕР ПЛАВНЫЙ ПОЛЕТ ПРИВИДЕНИЯ Загрузи из библиотеки спрайт привидения. Давай созда- дим код, который заставит его плавно летать по сцене в случайно выбранную сторону. Чтобы сделать почти на- стоящий мультфильм, можно добавить какой-нибудь за- гадочный звук (посмотри на вкладке «Звуки»), и не забудь вытащить команду «играть звук» из группы сиреневых блоков. В следующих главах мы подробно изучим работу со звуком и научимся создавать свои записи и спрайты.
ПРИМЕР СПРАЙТ И УКАЗАТЕЛЬ МЫШИ В играх персонажи часто пользуются инструментами или волшебными предметами. Для того чтобы перемещать с места на место объекты (спрайты), существует специ- альный блок, привязывающий спрайт к указателю мыши. Загрузи из библиотеки спрайты кошки и мышки. Создай код, при помощи которого кошка будет гонять- ся за мышкой, но так и не сможет ее догнать. Скрипт для мышки заставит ее перемещаться вместе с курсором. Скрипт для кошки заставляет ее преследовать мышку. Придумай игру, в которой кошка ловит мышку. Например, мыш- ка может появляться в случайном месте сцены, а кошка — пере- двигаться по сцене по командам с клавиатуры. ЧТО ТАКОЕ УГОЛ ПОВОРОТА? В группе «Движение» есть блоки, которые поворачивают спрайт на нужный угол.
360 Чтобы выбрать значение для угла поворота спрайта, по- смотри сначала на этот круг. Цифра 0 соответствует на- правлению движения спрайта; чтобы повернуть налево, нужно либо указать отрицательное значение (от 0 до -180) в первом блоке, либо использовать блок левых поворотов. Для поворота направо нужно ввести положительное число (от 0 до 180) в первом блоке или использовать соответству- ющий блок. КРУТОЙ ПОВОРОТ От верхней (нулевой) точки круга спрайт может пово- рачивать как направо — по часовой стрелке, так и на- лево — против часовой. В группе «Движение» есть команды поворота на любой угол — блоки, поворачива- ющие спрайт относительно направления его движения (это направление считается нулевым). направление: 54° Перетащи в свой скрипт блоки поворота и измени значение угла. Царапка стал дви- гаться в разных направлениях. Обрати внимание, что в окошке свойств спрайта можно увидеть не относительное, а точное значение угла, на который поворачивается спрайт. С блоками, поворачивающими спрайт вверх, вниз, налево и направо, ты уже знаком. Так что перейдем к более интересным командам. Ты можешь сделать так, чтобы при изменении направления движения спрайта поворачивалось и само изображение. Или заставить спрайт смотреть на указатель мыши или другой спрайт, не задумываясь о значении угла поворота. Это очень удобно в играх, когда спрайты гоня- ются друг за другом. омль вращения влево-вправо Если спрайт убежал за пределы экрана, не пугайся. Чтобы вернуть его в центр сце- ны, используй блоки 0 Поэкспериментируй с блоками, управляющими движением Царапки. Вводи разные значения, чтобы посмотреть, как кот т. перемещается по сцене.
ПРИМЕР УЧИМ ЦАРАПКУ ХОДИТЬ ПО ПОТОЛКУ Для того чтобы научить Царапку ходить вниз головой, нужно на- строить стиль поворота. Для этого мы пойдем в область свойств спрайтов, которая расположена слева внизу редактора Скретч. Здесь собраны все спрайты, которые участвуют в программе. Вы можете переключаться между спрайтами, менять их свойства, создавать новых героев. Буква i в маленьком синем кружочке рядом с Царап- кой — это «ключ» к окошку изменения свойств спрайта. Если щелкнуть по кружочку, на экране появится окошко с информацией о спрайте: имя спрайта, его положе- ние (координаты) на экране и его реакция на команду «поворот». Именно здесь можно изменить свой- ства или узнать значения параметров. Спрайты Новый объект *5 / {) арапка стиль вращения: О *“* • можете перетащить в проигрыватель: показать V СОВЕТ Называй спрайты так, чтобы не запутаться, особенно если спрайтов больше 4-5. Скретч понимает русские буквы, так что имена могут быть не только английскими, но и русскими. Обрати внимание на кружок с черточкой. х: -9 у: 110направление: 90= стиль вращения: О *"* • можете перетащить в проигрыватель: Г" показать У
Если подвигать мышкой синюю черточку, она будет вращаться, а число слева от нее будет меняться. направление: О' Если ты поставишь черточку вертикально и щелкнешь на блоке _J (в области скриптов), Царапка пойдет вверх! ВРАЩЕНИЕ СПРАЙТА В свойствах спрайта есть загадочная строчка. Оттого, какие параметры ты в ней выберешь, зависит, как картинка спрайта будет вести себя при поворотах. Если ты нажмешь Кружок со стрелкой, картин- ка спрайта будет сама поворачиваться в соответ- ствии с направлением движения. Запусти скрипт кругового обхода поля и увидишь, что Царапка не только перемещается по кругу, но и поворачи- вается, как будто идет по стенам и потолку. «Двусторонняя стрелка» заставляет Царапку поворачиваться в нужную сторону при движении вправо и влево. (При движении вверх и вниз ни- чего не происходит.) Точка просто запрещает поворот картинки при любых движениях спрайта. Изменить стиль вращения спрайта можно пря- мо в программе. Для этого достаточно добавить в программу специальный блок. В группе «Движение» еще один популярный блок, который позволяет узнать направление движения спрайта. Поставь галочку в квадратике слева от блока, и на сцене появится надпись: стиль вращения: О • гя-| Ulntrtkd-n L.. J ыа Yuliy ат (томный) БЛОКИ ИЗ ГРУППЫ «СОБЫТИЯ» Любой скрипт можно запустить, щелкнув на его первом блоке, но такой запуск доступен только тебе — автору программы. Если твой проект захотят посмотреть другие, они должны будут нажать специальную кнопку для запуска игры или программы.
В правом верхнему углу сцены расположены значки ф новки программы. Если ты нажимаешь кнопку на клавиатуре, двигаешь мышку или на экране сталкиваются два спрайта — проис- ходит событие, а как на него реагировать, решают блоки из группы «События». Например, когда ты нажимаешь зеленый флажок, Скретч получает сообщение о щелч- ке мышью в определенной области экрана и запускает программу. Перетащи блок с флажком в область скриптов и по- ставь его перед всеми остальными блоками. Теперь зеленый флажок в верхнем правом углу сцены заставит Царапку пробежать круг по полю. Посмотри, какие еще блоки есть в группе «События». — это кнопки запуска и оста- Попробуй заменить верхний блок на Нажми «пробел» на клавиатуре. Царапка начнет бегать по кругу. Теперь замени этот блок на когда спрайт нажат Щелкни мышью по Царапке, и он снова начнет двигаться по кру- гу. Блоки из группы «События» могут запускаться не только дей- ствиями пользователя, но и событиями внутри программы. Например, блок когда фон неняепл на backdropl дает команду вы- полнить какие-либо действия при смене фона. Так ты сможешь управлять уровнями в игре. Новый уровень — новый фон и новые действия. Давай попробуем использовать блоки управления событиями. Загрузи спрайт мыши из библиотеки и создай вот такой код (воспользуйся командой «дублировать»):
Теперь мышь будет менять на- правление движения, когда ты на- жимаешь стрелочки на клавиатуре. Поэкспериментируй с разными кла- вишами и командами. эксперимент ’ **7*7*7 Помнишь, как двигаются герои твоих любимых компьютер- ных игр? Стрелки обычно меняют направление движения, а пробел помогает перепрыгнуть препятствие. При нажатии пробела персонаж должен подняться вверх, передвинуться вперед и опуститься. Вставь паузу между командами или используй блок «плыть», чтобы движения были заметны. БЛОКИ ИЗ ГРУППЫ «УПРАВЛЕНИЕ» Наш Царапка обходит сцену только один раз. Хочешь сделать так, чтобы он ходил по кругу, пока не получит команду остановиться? Щелкни мышкой на четвертом блоке скрип- та и потяни его вниз. Скрипт разделится на две части. В группе блоков «Управление» найди блок «всегда». Перетащи его поближе к скрипту, так чтобы он совпал с левым верхним углом нижней части скрипта. Появится белая рамка, и блок автоматически растянется до нужного размера. Теперь прицепи обратно верхние блоки. Как же работает программа, по которой Ца- рапка встает в левый нижний угол и бесконеч- но бегает по кругу?
Этот скрипт выполняет следующие действия: Переместить Царапку в заданную точку. Заставить Царапку бегать по кругу бесконечно («всегда»). Для этого Царапка должен: Повернуть направо. Сделать 400 шагов. Подождать 1 секунду. И повторять эти действия, пока пользователь не остановит программу. СОВЕТ Остановить программу можно в любой момент, для этого до- статочно нажать красный многоугольник в правом верхнем углу сцены. Но ты можешь придумать и запрограммировать свой способ. ВИСЛЕРИ^ЕНГ Изучи другие блоки управления. Поставь вместо блока «всегда» блок > Запусти программу. Что изменилось?
ТРА-ЛЯ-ЛЯ-ЛЯ... ДИРИЖИРУЕМ ОРКЕСТРОМ Царапка уже умеет ходить по полу, стенам и потолку, поворачи- ваться и даже замирать на месте. Но котик получился подозри- тельно тихим. Давай научим его общаться с другими спрайтами, петь, плясать и мяукать. БЛОКИ ИЗ ГРУППЫ «ЗВУК» | Движение I Внешность | Перо | Данные | События | Управление | Сенсоры | Операторы | Новые блоки Для работы со звуками в Скретче есть специальная группа команд «Звук» и вкладка для редактирования и создания звуковых файлов. Обрати внимание, что все элементы, связанные со звуками, окрашены в сирене- вый цвет. Перетащи в скрипт «Первые шаги Царапки» блок I. Если его поставить после каждой па- узы, то Царапка начнет мяукать на каждой остановке. В библиотеке Скретч хранится множество звуков, ко- торые ты можешь использовать в своих проектах. играть звук meow
I ДОБАВЛЕНИЕ ЗВУКОВ ИЗ БИБЛИОТЕКИ Библиотеку найти нетрудно, про- Скрип1ы кС1СТВМЬ1 3в)КИ сто перейди на вкладку «Звуки» в области скриптов. Так ты попадешь в область редактирования, загрузки и записи звуков — редактор звука. Редактировать ▼ Эффекты ▼ Microphone volume: О Нажми левый значок в меню новых звуков. От- кроется библиотека готовых звуков Скретч. Если дважды щелкнуть на любом из звуков, библио- тека закроется, а значок с названием звука по- явится слева, в окне звукового редактора. Библиотека звуков Все Животное Эффекты Электроника Человек Инструменты Музыкальная петля Перкуссия Звуки afro string cave
играть звук ► повернуть идти ждать Ос meow meow запись1 afro string Теперь вернись в свой скрипт. Если ты нажмешь черную стрелку в блоке «играть звук», откроется меню, в котором на- ходятся все звуки, выбранные для этого проекта в звуковом редакторе. В библиотеке можно найти звуки разных музыкальных ин- струментов, человеческие голоса, разные шорохи, скрипы и писки, голоса животных. Для того чтобы услышать звук, не- обязательно загружать его в проект, просто щелкни на нем один раз. Два щелчка добавят любой звук в проект. РЕДАКТИРОВАНИЕ ЗВУКОВ Редактировать ▼ отмена повтор вырезать копировать вставить удалить выбрать все Черная затейливая фигура в звуковом редакторе — это осциллограмма (изменение звука во времени). Обрати внимание на расположенные под ним кнопки — это проигрывание, остановка и запись звука. Меню «Редактировать» и «Эффекты» позволяют изменить любой звук — вырезать его фрагмент, вставить другой звук, сделать звук громче или тише и многое другое. Это удобно делать на осциллограмме. Для того чтобы выделить нужный фрагмент звука, в который ты хочешь внести изменения, щелкни мышью на начале фрагмента и, не отпуская кнопку, тащи указатель до нужной точки. Отпусти кнопку, и нужный фрагмент окрасится в сиреневый цвет. Теперь к этому звуковому кусочку Эффекты ▼ увеличивать исчезать громче мягче тишина вернуться можно применять любые команды и эффекты из меню редактирования. Если сейчас щелкнуть кнопку проигрывания звука, то ты услышишь только выделенный фрагмент. Чтобы прослушать весь звук целиком, сними выделение, щелкнув мышью в любом месте. aww Громкость звука зависит от настроек твоего компьютера. Но ты можешь сделать одни звуки громче или тише других, это пригодится тебе в играх.
ЗАПИСЬ ЗВУКОВ Очень интересная и полезная функция Скретч — запись собствен- ных звуков прямо в программе. Ты можешь записать диалоги героев игр или собственное музыкальное сопровождение, для этого тебе понадобятся только Скретч и микрофон. СОВЕТ Большинство современных ноутбуков оснащены встроен- ными микрофонами. Если ты пользуешься настольным ком- пьютером, то, скорее всего, тебе понадобится отдельный микрофон, он пригодится и для ноутбука, ведь звук записы- вать проще, держа в руке микрофон. Запись можно начать, щелк- нув на треугольнике в меню Кнопка становится красной — значит запись началась, можно говорить или петь в микрофон. Остановить запись просто, доста- точно нажать квадратную кнопку «Стоп». Для записи звуков есть отдельный Новыйзвук. экран, он откроется, если ты нажмешь ма- ленький микрофон в меню «Новый звук» [ Мой новый звук Новый звук по умолчанию называ- ется sound 1, 2, 3 и так далее. Для того чтобы не запутаться, дай своему звуку понятное название в окошке над графиком. Правее на- звания звука находятся кнопки, кото- рые позволяют отменить или вернуть последнее действие в звуковом редакторе.
Как только ты нажмешь кнопку «Стоп», запись останавлива- ется, но редактор продолжает работу с текущим звуковым файлом. Если снова нажать кнопку «Запись», то звук про- должит записываться в тот же файл. Для записи новой фразы или звука тебе придется снова нажать микрофон в меню «Новый звук», чтобы начать новую запись. Записанные звуки сразу появляются в текущем проекте Скретч. Но если ты собираешься использовать свои записи в разных про- ектах или просто оставить на память, необходимо сохранить их в виде отдельных звуковых файлов. Для этого щелкни правой кнопкой мыши в списке звуков на нужной записи. Откроется контекстное меню, в котором нужно выбрать пункт «сохранить локальный файл». Откроется стандартное окно сохранения файлов, где ты можешь выбрать место и указать имя файла. <5° дублировать удалить сохранить локальный файл Если ты захочешь использовать этот файл в другом проекте, просто открой его при помощи значка папки в меню «Новый звук» Новый звук: < 1 Ijj] ГРОМКОСТЬ Громкость звука в Скретч меняется так же, как и в музыкальных плеерах. В играх часто используют один и тот же звук, но меняют его громкость. Рев приближающейся гоночной машины или гул самолета становятся громче, когда они приближаются к игроку. Громкость можно измерять внутри скрипта, для этого использу- ется встроенная переменная «уровень». На изменение уровня звука могут реагировать герои твоих игр. Например, если поднимается слишком сильный ветер, пора в укрытие.
ТЕМП Мы чувствуем характер музыки — понимаем, грустная она или веселая, спокойная или бодрая. Под быструю музыку хочется плясать, а под медленную засыпать. Ритм музыки определяется темпом — скоростью проигрывания нот. Для изменения темпа в Скретче есть специальные блоки и переменная, позволяющая измерить темп музыки:
3 ГРАФИЧЕСКИЙ РЕДАКТОР СКРЕТЧ И НОВЫЕ СПРАЙТЫ КАКИМИ БЫВАЮТ ГРАФИЧЕСКИЕ РЕДАКТОРЫ Спрайт можно нарисовать самостоятельно, с чистого листа, или взять за основу готовое изображение или фотографию. Если ты хочешь создать собственную игру, то тебе понадобятся: 1. Главный герой, один или несколько. 2. Препятствия, которые он должен преодолевать. 3. Фон для игры. 4. Кнопки для начала и окончания игры, поле для вывода результатов, значки для под- счета ресурсов и многое другое. В проекте Pixel Art Tutorial («Руководство по пиксель-арту»), который посвящен рисова- нию в стиле старых компьютерных игр, автору понадобились два изображения «пиксельного» человечка, изображение замка, тень и надписи. Sprite' г -1ВД у: тя Нокый объем <*/ЙЙ Shadow &ие' Butter Spr<et ’ * Все объекты, которые в твоей игре или программе будут меняться или двигаться независимо от фона, должны быть отдельными спрайтами. Нарисовать спрайт можно пря- мо в графическом редакторе Скретч, а можно воспользо- ваться графическим редактором, установленным на твоем компьютере.
Это может быть обычный Paint или любой из детских графических редакторов, например Tux Paint (http://www.tuxpaint.org/). Ты можешь использовать и более сложные графические редак- торы, только на их освоение понадобится больше времени, на- пример Inkscape (http://inkscape.org/en/) для векторных или Gimp (http://www.gimp.org/) для растровых изображений. Ты можешь работать в любом редакторе, какой тебе покажется удобным. Главное — сохранять изображения в форматах, которые понимает Скретч, это форматы JPG, BMP, PNG, GIF (включая ани- мированный GIF). Для фона потребуются рисунки и фотографии размером 480 на 360 пикселей, иначе они не поместятся на сцене. Растровая графика. Растровые графические редакторы собирают изображе- ние из множества разноцветных точечек-пикселей, как из мозаики. Векторная графика. Векторные графические редакторы складывают изображе- ние из фигур — разнообразных геометрических объектов, форму которых можно описать каким-то математическим выражением. Например, круг — это все точки, находящиеся на одном и том же расстоянии от центра. В растровых редакторах удобно создавать сложные цветовые эффекты — переходы цветов, отражения предметов, размытия. Распылишь белую краску по голубому фону — и получишь облака на небе. Векторные редакторы позволяют создавать изображения со множеством объектов, имеющих четкую форму. Хочешь на- рисовать город — используй множество зданий разной формы, передвигай объекты с места на место, пока не получится нужная картинка. Скретч 2.0 поддерживает и векторные, и растровые изображения. Для того чтобы открыть графический файл, ж / л, - созданный в другой программе, нажми значок папки в правом верхнем углу области спрайтов. Выбери нужный файл, и изображение появится в области спрайтов.
РИСУЕМ В СКРЕТЧ СОЗДАНИЕ НОВОГО СПРАЙТА В РЕДАКТОРЕ СКРЕТЧ Чтобы перейти в графический редактор Скретч, нажми значок кисточки в правом верхнем углу области спрайтов. Откроется окно редактора. Сейчас редактор работает в растровом режиме, позволяя ри- совать линии и простые геометрические фигуры, заливать их кра- ской, стирать нарисованное, использовать штампы. Слева расположена область инструментов. Одним щелчком мыши ты можешь выбрать нужный инструмент. Лупа изменяет масштаб рисунка, с ее помощью удобнее рисовать мелкие детали. 800%
Рисует кривую линию. Рисует прямую линию. Рисует прямоугольник, а с нажатой клавишей Shift — квадрат. Рисует овал, а с нажатой клавишей Shift — круг. Стирает изображение. Окрашивает изображение в выбранный цвет, но контур изображения и его внутреннюю часть нужно раскраши- вать отдельно. Позволяет написать текст в любом месте экрана. Поменять шрифт можно в меню, расположенном в нижней части экрана. К сожалению, русскими буквами пользоваться нель- зя, только латинскими (английскими) буквами и цифрами. Позволяет выделить и подвинуть фрагмент изображения. Выбери этот инструмент, щелкни мышью в нужной точке на рисунке и тащи указатель, не отпуская — на экране появится прямоугольник с контуром в виде прерывистой линии. Когда ты выделишь нужную область рисунка, ее можно будет удалить (кнопкой Del), пере- двинуть (стрелочками на клавиатуре или мы- шью) или повернуть за точку, расположенную сверху выделенного участка. Дублирует фрагмент изображения. Выдели нужный фраг- мент и нажми кнопку с штампом — появится копия, кото- рую можно перенести в любое место. В нижней части редактора расположе- на палитра для выбора цвета. Кажется, что здесь уже много цветов, но на самом деле их еще больше.
Если ты нажмешь на разноцветный квадратик, откроется другая палитра — в виде цветового спектра. Здесь можно найти самые разные тона и оттенки. Левее палитры находится «бегунок», позволяющий изменить толщину линии. Если ты рисуешь овал или прямоугольник, бегунок превращается в кнопки для настройки закраски фигур. Объект можно закрасить одним цветом, а можно ис- пользовать цветовые переходы (градиент). Очистить Импорт В верхней части экрана расположены кнопки «Очи- стить» и «Импорт». Первая кнопка позволяет быстро убрать все изображение, а вторая загружает файл с картинкой в графический редактор, чтобы ее можно было изменить. СОЗДАНИЕ КОСТЮМОВ В Скретч удобно создавать как сами спрайты, так и костюмы для них. Костюм — это внешняя оболочка объекта программы. При создании спрайта автоматически создается один костюм, но ты можешь дорисовать множество других. Если нажать кисточку в столбце с костюмами (левая часть ре- дактора), создается пустой костюм, в котором можно нарисовать любой рисунок. При анимации персонажей проще всего создавать костюмы на основе первого. Щелкни правой кнопкой мыши на исходном костюме и выбери пункт меню «дублировать». Появится копия исходного костюма, которую можно изменять. А ластик поможет тебе стереть лишние детали.
Скрипты Костюмы Звуки I Юдйпшкгя I I щгмптррп» гтра—nr t Нивый косном. dom2 Очиашь Импир! костюм 1 Г0СТЮМ2 0 костюмЗ 4.ЛХ132 7(Н>% Растрооый рсж КПНЙРрТИППАЯТЬ Р RAKTnpt ПРИМЕР ТАНЦУЮЩИЙ ЗАЯЦ Давай создадим спрайт с костюмами и на- пишем программу для его анимации. Нарисуй в растровом режиме зайца, для этого тебе пригодятся овалы, круги и заливка серым цветом. Создай новые костюмы на основе уже имеющегося, для этого хорошо подой- дет дублирование. Пускай на этих изо- бражениях одно или оба уха зайца будут опущены. Несложная программа заставит нашего зайца прыгать вверх-вниз и шевелить уша- ми под барабанную дробь. сменить костюм на костюм4 тактов адтн тактов сменить костюм на костюмЗ
СОХРАНЕНИЕ НОВОГО СПРАЙТА В ОТДЕЛЬНЫЙ ФАЙЛ удалить сохранить локальный файл Если ты хочешь использовать собственные спрайты в раз- ных проектах, их нужно сохранить как отдельные файлы. Для этого щелкни в редакторе (левый столбец) правой кнопкой мыши на костюме и выбери пункт меню «сохра- нить локальный файл». Укажи папку, где будут храниться твои спрайты, и введи нужное имя файла. Нажми «сохра- нить». Тебе будет проще использовать спрайт, если имя файла совпадает с названием спрайта. Храни все файлы одного проекта в одной папке! Для каждого костюма необходим отдельный файл! Выбери для спрайта имя и дополни его цифрой или буквой, напри- мер: Заяц-а, Заяц-b или Заяц1, Заяц2 и так далее. ВЕКТОРНЫЙ РЕДАКТОР Векторный редактор Скретч хорошо подходит для создания слож- ных объектов. Давай создадим новый спрайт и назовем его «Морковка». Если ты перейдешь в графический редактор и нажмешь кнопку «кон- вертировать в векторный режим» в правом нижнем углу экрана, вид экрана изменится. Инструменты редактирования изображе- ний поменяются и переместятся вправо. Нарисуй овал при помощи инструмента круга. Залей его оран- жевой краской, как ты это делал в растровом режиме. Не забудь залить оранжевым цветом и сам контур. Найди на панели инструментов значок и нажми его. Заме- тил, что на овале появилось несколько кружочков? Это опорные точки, потянув за которые можно изменить форму фигуры. По- пробуй, щелкая мышкой по точкам и двигая их в разные стороны, придать изображению форму морковки.
Smooth Очистить Импорт ОЙ ow + ч IP / □ О т <0» st =4 q = ц 200% Vector Mode Convert to Bitmap Кнопки инструментов — текст, рисование фигур, заливки и пе- чать — работают так же, как и в растровом режиме, только изо- бражения легко можно изменять. Если тебе нужно работать с мелкими деталями, воспользуйся лупой. 800% Если ты щелкнешь не на опорной точке, а на контуре, в этом месте появится новая опорная точка. Чем больше опорных точек, тем точнее ты можешь настроить форму фигуры.
Используй карандаш, чтобы подрисовать морковке ботву. Обрати внимание, что края векторного и растрового изо- бражений выглядят по разному: у векторного они ровные и гладкие. Сравни векторного и растрового зайцев. Какая картинка лучше — решать тебе. Кому-то нравятся точные контуры фигуры, а кому-то — размытые. Векторный режим хорошо подходит для создания костю- мов. Чтобы опустить ухо зайца, достаточно повернуть нужный овал. Ничего стирать и рисовать заново не потребуется. I Если ты нарисуешь изображение в векторном режиме и нажмешь кнопку «конвертировать в растровый режим», то картинка навсегда перестанет быть векторной — даже если ты вернешься в векторный режим, операции с опор- ными точками будут недоступны. СЛОИ ИЗОБРАЖЕНИЯ _ В векторном режиме появились новые кнопки, управляющие по- рядком наложения фигур друг на друга. Они позволяют управлять расположением частей рисунка. Пред- ставь, что рисунок состоит из слоев, как луковица. Одна фигура на- ходится наверху, и ее видно полностью. Другая может находиться ниже, и ее будет видно только частично. Посмотри на эти квадратные рамки. &
Чтобы изменить положение конкретного слоя, нужно выделить его и нажать кнопку со стрелкой вверх или вниз. ГРУППИРОВКА ФИГУР Очень часто хочется объединить несколько объектов в один, чтобы их вместе двигать, раскрашивать и производить другие операции. Кнопка позволяет объединять или группировать элементы изображения. Выдели нужные объекты (в этом поможет кнопка Shift) и нажми эту кнопку. Теперь редактор будет воспринимать группу как один объект, а кнопка поменяет вид на • , позволяя разгруппировать изображения. Нажмем ее, и фигуры снова будут восприниматься редактором по отдельности.
БЛОКИ «ВНЕШНОСТЬ» И КОРОТКИЕ МУЛЬТФИЛЬМЫ Для мультфильма или забавной игры необязательно создавать программу со множеством спрайтов и сложным управлением. Нам поможет группа блоков «Внешность», которая поможет из- менить внешний вид спрайтов, добавить интересные эффекты и озвучить героев. С такими блоками легко анимировать персо- нажей игр. Можно поменять цвет спрайта и применить этот скрипт к нашей морковке. когда клавиша пробел нажата измениь цвет J эффект на €3] Цвет определяется значением, указанным в этой команде. Ко- манда получает число и находит соответствующий ему цвет. Если исходный цвет черный или серый, будут перебираться оттенки серого. К спрайту можно применять и другие специальные эффекты, меняющие его вид. Например, «мозаика» размножает спрайт, но клоны-копии при этом не создаются. А «завихрение» скручи- вает изображение в спираль. когда клавиша пробел нажата изменить завихрение эффект на
АНИМАЦИЯ В мультфильмах персонажи движутся, потому что изображения с небольшими изменениями быстро сменяют друг друга. Скретч позволяет создавать целые мультфильмы или отдельные сцены, в которых герои танцуют, подпрыгивают, размахивают руками. А помогают в этом костюмы спрайтов. Они видоизменяют спрайт, оставляя его поведение неизменным. В библиотеке спрайтов можно найти не только спрайты, но и готовые костюмы. Загрузи из библиотеки спрайт голубя. На вкладке «Костюмы» ты увидишь дополнитель- ный костюм — крылья голубя опущены вниз. О dove1-a 173x118 когда щелкнут по Давай заставим голубя летать. Создай вот такой код, если ты его запустишь, голубь нач- нет махать крыльями, но останется на месте. когда щелкнут по Добавь в программу блоки перемещения, чтобы голубь двигался по сцене. Попробуй поменять время ожидания между сменой костюмов.
ДИАЛОГИ Хочешь, чтобы спрайты разговаривали по твоей команде? Нарисуй или загрузи из библиотеки нужные спрайты, например, мальчика и девочку. Для каждого спрайта понадобится отдельный код. При щелчке на зеленом флажке спрайты начнут диалог. Дорожка, на которой стоят герои, — это линии, нарисован- ные на фоне. Согласись, так картинка становится реалистичнее и оживает.
БЛОКИ «ВНЕШНОСТЬ» ДЛЯ СПРАЙТОВ Рассмотрим подробнее, какие блоки есть в группе «Внешность» и как они работают. Показывает текст в «пузыре» (как в комиксах). Что написать, решаешь ты сам. «Пузырь» с текстом ис- чезнет, когда истечет время, указанное в параметре команды. думать Qио секунд скрыть Этот «пузырь» с текстом будет на экране все время, пока программа работает. Этот блок показывает «облачко» с мыслями. Об- лачко остается на сцене все время, пока программа работает. «Облачко» с мыслями будет оставаться на сцене то время, которое указано в параметре команды. Делает видимым спрайт, к которому относится. Делает невидимым спрайт, к которому относится. сменить костюм на костюм2 Меняет костюм на указан- ный в параметре. В меню, которое открывается при нажатии стрелки, нахо- дятся все существующие костюмы. Скрипты Костюмы Звуки Меняет костюм на следующий. По- рядок следования костюмов такой же, как в графическом редакторе. Номер костюма в очереди может не совпадать с цифрой в его на- звании. Обратите внимание, что после «костюм1» блок включит «костюмЗ», а не «костюм2».
Меняет текущий фон на другой, указанный в па- раметре. Ты можешь выбрать любую из суще- ствующих фоновых картинок, нажав стрелку. Этот блок может стоять в скрипте любого спрай- та, но будет действовать на всю сцену. Этот блок включает цвет спрайта в соответствии с указанным номером. В этом блоке два параметра: вид изменения и степень изменения. Ты можешь изменить цвет или форму спрайта. В Скретч можно выбрать любой из 200 цветов. Они прону- мерованы по порядку от 1 до 200 и меняются в соответствии с цветами радуги, начиная с красного. Ты можешь указать шаг изменения цвета, тогда цвет спрайта будет изменяться с указанным шагом. Обрати внимание, что меняется толь- ко цвет заливки, цвет контура остается прежним. Если ты будешь щелкать по этому блоку, цвет Царапки каждый раз будет изменяться на 25. Меняет силу выбранного эффекта. Для «завихре- ния» — чем больше число, тем сильнее будет за- кручиваться картинка. Избавляет спрайт от всех эффектов, которые были к нему применены. Поднимает спрайт в верхний слой сцены так же, как это делается в графическом редакторе. Опускает спрайт сниз на один слой. Так ты можешь прятать спрайты друг под другом, то есть управлять их видимостью.
Изменяет размер спрайта. Возвращает размер спрайта к исходному значению. Эти переменные всегда существуют в Скретч. Если поставить галочки, значе- ния станут видны на сцене. Переменные можно использовать в других блоках. Мы будем использовать их, когда начнем создавать свои программы и игры. На- пример, «имя фона» позволяет выпол- нять какие-либо действия в программе при появлении определенного фона. БЛОКИ «ВНЕШНОСТЬ» ДЛЯ СЦЕНЫ Если щелкнуть по сцене и затем перейти в группу блоков «Внеш- ность», то набор блоков изменится: сменил» фон на фон 1 и ждать Отображает номер фона. Включает следующий по порядку фон. Включает указанный фон и приостанавливает работу программы до дальнейших действий пользователя. Управление при этом передается скрипту событий когда фон меняется на фон 1 Все перечисленные блоки относятся к сцене, то есть их можно использовать только в отдельном скрипте для сцены.
ПОЧЕМУ МЫ ЛЮБИМ ИГРЫ И КАК ПРИДУМЫВАЕМ ИХ О ЧЕМ БУДЕТ НАША ИСТОРИЯ? Прежде чем создавать игру в Скретче, стоит придумать для нее историю. Подумай, какие игры и мультфильмы ты любишь? Что в них происходит? В мультфильмах всегда есть герои. Они могут, например, искать потерявшихся друзей, спасать кого-нибудь во время наводнений или землетрясений, исследовать неизведанные земли, сражаться с чудовищами или хулиганами. Они дружат, ссорятся и мирятся. Все это может стать сюжетом — историей, которая происходит с героями. У каждого персонажа свой характер, и от него зависит, как будет разговаривать, двигаться и поступать герой. В играх все так же — есть сюжет и герои. Но вот важное отличие игры от мультфильма: в игре мы не только наблюдаем за развити- ем сюжета, но и сами что-то делаем. Мы принимаем решения о том, что и когда будет происходить. В отличие от обычной жизни эти решения не могут быть любыми. Пространство игры ограниченно. Создатель игры (например ты) заранее продумывает поведение игрока. Больше, чем задумано, игрок сделать не сможет. Так что игра не должна быть скучной! Вспомни сюжеты игр и мультфильмов, которые тебе нравятся больше всего. Какие в них главные герои? Что с ними происходит? Какие трудности им приходится преодолевать? Какие чувства ис- пытывают при этом герои?
КАКИЕ ИГРЫ МЫ ЛЮБИМ ГОНКИ Все любят догонялки. Участвовать в таких играх могут машины, катера, мотоциклы, вертолеты, самолеты, животные. А игрокам приходится быть очень внимательными и быстро реагировать. Почему нам нравятся такие игры? Постоянное напряжение заставляет игроков чувствовать себя сильными и быстрыми. «Mini Motor Racing» — хороший пример игры, посвященной гонкам. Игрок должен сражаться с другими машинами, с трас- сой и со временем. Очень часто в гонках сложность трасс растет с каждым уровнем. Приз за ловкость и реакцию — победа в гонке, общие очки в игре, переход на следующий уровень.
ПЛАТФОРМЕРЫ Это преодоление препятствий, сражения и драки. Игрок должен быстро действовать, чтобы перепрыгнуть ров с водой, взобраться на гору, ускользнуть от опасности, ударить противника. Требуется внимание и хорошая реакция. Такие игры позволяют нам по- чуствовать себя ловкими, смелыми и способными преодолеть любые трудности. В таких играх нужно бегать, лазать по лестницам, перепрыгивать через пропасти. Для завершения уровня приходится не только преодолевать препят- ствия, но и собирать какие-либо предметы. Герою платформера обычно дается ограниченное количе- ство жизней. Один из самых знаменитых платформеров — серия игр про братьев Марио, в которой забавные сантехники преодолевают коварные препятствия, попутно собирая монетки.
головоломки Игрокам нужно решать трудные задачи, быть очень внимательны- ми и иногда быстро реагировать. Даже самые простые головолом- ки — «Тетрис» или «Сапер» — доставляют радость, ведь твой ум работает быстро и мгновенно решает трудные задачи. Игре «Тетрис» уже больше 30 лет! А популярность ее не уменьшает- ся. Для высоких результатов игроку нужны быстрая реакция и ловкость, чтобы аккуратно укладывать ряды сложных фигур. «Тетрис» легко можно сделать в Скретче.
КВЕСТЫ Квесты — это игры, в которых приходится искать сокровища, спрятанные предметы или выход из закрытых помещений. Чтобы решать трудные логические задачи, понадобятся фантазия и ло- гика, иначе ты не догадаешься, что имел в виду автор игры и где спрятан нужный предмет. В квестах нужно много думать и пом- нить множество вещей — карту мира, слова персонажей и другое. Обычно это спокойные, очень красивые игры с приятной фоновой музыкой. Пройдя такую игру, игрок чувствует себя настоящим де- тективом, способным решить сложнейшие задачи. «Машинариум» — один из самых знаменитых квестов, в кото- ром робот Йозеф должен спасти свою подругу, разгадав много тайн и загадок на странной заброшенной планете. Персонажи игры не разговаривают, только иногда мы можем видеть мысли Йозефа. Создатель игры «Машинариум» Якуб Дворски рассказывал, что, придумывая игру, он создал историю появления роботов на пла- нете (в самой игре этой истории нет): «Все произошло на одной далекой планете, куда люди привыкли отправлять мусор, который они производили, — старые машины, механизмы, компьютеры и прочее. Из этого механического лома возникло несколько про- стых роботов. Некоторое время спустя они построили других, бо- лее совершенных роботов, а потом и поселение. Так был создан город Машинариум».
СТРАТЕГИИ Стратегии — это игры, в которых ты обустраиваешь собственные города и планеты, изучаешь новые миры, ведешь войны. В стра- тегиях ты учишься пользоваться ограниченным набором ресурсов для решения сложных задач. В них ты должен анализировать обстановку, размышлять, составлять длинную последователь- ность действий. В стратегиях часто приходится решать проблемы, существующие в настоящей жизни. Например, при строительстве города нельзя забывать про дороги, погоду, вовремя запасать про- дукты для жителей и учитывать еще множество разнообразных вещей. Добиваясь успеха в придуманном мире, игрок чувствует себя умным, решительным и дальновидным. Такие игры позво- ляют изучить экономику и стратегию. В популярной стратегии «Майн- крафт» игроки могут создавать дома, города, развивать производство и ве- сти войны. Ресурсы — вода, дрова, оружие — ограничены, и использовать их надо с умом.
ПРИДУМЫВАЕМ СВОЮ ИГРУ Для того чтобы создать интересную игру или мультфильм, нужен сюжет — история, которая происходит с персонажами. Иногда истории появляются в голове сами, только успевай за- рисовывать и записывать. А иногда... в голове пусто. Это очень обидно, но можно исправить. Знаменитый писатель Джанни Родари — автор «Чипполино» и множества других историй для детей и взрослых — заставлял фантазию работать при помощи простого приема. Возьмем любое слово, например... коробка. Запишем его с с К буквы в столбик о р о Б К А Теперь на каждую букву придумаем слово. (Только думать надо быстро!) Кусты Обернулись Разноцветным Одеялом Брыкавшим Краснолицего Аргонавта Вот это образ! А теперь подумай. Зачем бы одеялу брыкать аргонавта? И как оно может брыкаться? У него что, есть ноги? Что аргонавту понадобилось под одеялом? Может быть, там спрята- но сокровище, которое защищает куст-оборотень? И кто же мог там спрятать это сокровище? Так, стоп, а где все это происходит? Аргонавты плыли на корабле, на «Арго»... Они что, высадились на остров, а там живет чудовище?.. Они выловили из воды бутылку со старой пиратской картой, на которой нарисован путь к кладу, только там ничего не говорилось о чудовище! Кстати, почему ар- гонавт краснолицый? Может, дело происходит на другой планете, где вместо Солнца светит другая опасная звезда, и человек успел обгореть?!
Хочется задать множество вопросов. Готовых ответов на них нет, так что приходится фантазировать и придумывать интерес- ные истории. У нас уже есть герои — аргонавты, трудная зада- ча — победить чудовище и найти сокровища, есть ресурс для ее решения — карта. КАК ПРЕВРАТИТЬ ИДЕЮ В ИГРУ Идеи и истории недостаточно для того, чтобы сделать игру. Тебе придется ответить на вопросы: • Какие эмоции игрок должен испытывать во время игры? • Игроку нужно быть быстрым? Смелым? Умным? • Чему игрок сможет научиться? • Что герои игры будут делать — бегать, обмениваться ресур- сами, решать загадки? Какое необычное действие игроку придется выполнять в твоей игре? Тебе придется придумать: • Как оценивать прогресс игрока (совершенствование его ка- честв). За успехи игрок должен получать очки, звездочки или ресурсы. • Как будут меняться задания или уровни, чтобы игрок мог выполнять всё более трудные задачи. Согласись, скучно, на- учившись чему-то, оставаться на том же уровне и не двигаться дальше. • Игровой мир. Он может быть привычным — город, квартира, лес, поле... Или непривычным — загадочные круги, воронки, абстрактные железные конструкции или жидкости. Каждый игрок в каждой игре играет, чтобы чувствовать себя умнее, сильнее, быстрее других. У него усиливаются, «про- качиваются» какие-то качества или появляются новые. Никто не играет в игры, чтобы проигрывать, поэтому игра не должна быть слишком сложной. Ты создаешь игры не для того, чтобы почувствовать себя умнее игроков. Успех твоего труда зависит от того, полюбят твою игру или нет.
ЧТО МОЖЕТ ПРИГОДИТЬСЯ В ИГРАХ Создатели интересных игр используют специальные приемы, по- зволяющие привлечь внимание игроков и сделать игру захваты- вающей. Мы тоже можем применять эти приемы в своих играх. Награды за достижения. Медаль, новое звание, очки — все это приятно игроку. Все достижения надо отмечать. Статус игрока должен все время расти. Важные вознаграждения. Медаль и очки — это хорошо, но бес- полезно. Поощряйте игроков полезными вознаграждениями — это может быть дополнительный запас топлива, новая машина, инструменты, одежда. Цепочки событий. «Нам необходимо переплыть реку, для этого нужно построить лодку, для этого нужно срубить дерево...» Игрок, сам того не замечая, втягивается в выполнение цепочки зада- ний. По отдельности действия могут быть не очень интересными, но все вместе ведут к важной цели.
Случайное событие. Игрок знает, что его поджидают трудности, но не знает, какие. Он построил лодку, плывет к соседнему остро- ву... Ой! Из воды неожиданно появляется морское чудовище! Так играть веселее и интереснее. Обратный отсчет. Для победы над морским монстром игроку дается огра- ниченное время. Пошел обратный отсчет: 10, 9, 8, 7, 6... Быстрее, а то чу- довище всех съест! Такой прием за- ставляет игрока мгновенно принимать решения и действовать. Сюрпризы. Неожиданные подарки или маленькие простые игры внутри игр сделают всю игру интереснее. Метки продвижения по игре. Прогресс должен быть виден игроку. Нужно обязательно показать, сколько очков заработано и сколько осталось до перехода на следующий уровень или сколь- ко уровней осталось до окончания игры.
6 БЛОКИ УПРАВЛЕНИЯ И ИГРА «НАКОРМИ ЗАЙЦА» Желтую группу блоков «Управление» мы уже не раз видели. Рассмотрим подробнее, что де- лают эти блоки и как их правильно использо- вать. Это очень важная информация, потому что от блоков управления — логики — зависит вся программа. Если твой проект работает не так, как задумано, первым делом нужно проверить работу блоков управления. ПАУЗЫ В играх и программах часто приходится приостановить действие на одну-две секунды, чтобы игрок мог подумать или разглядеть что-либо. Или программа должна подождать действий игрока или вы- полнения какого-то условия. Например, «армия танков может двигаться только после того, как последний самолет вернется из боевого вылета». Для пауз нам пригодятся следующие блоки: Приостанавливает выполнение про- граммы на время, которое указано в окошке параметра «время». Приостанавливает выполнение про- граммы, пока не будет выполнено ка- кое-либо условие. Только после этого программа продолжает работу.
Этот код при запуске перемеща- ет Царапку на 10 шагов вправо. Кот останавливается. Он ждет, пока мы не нажмем клавишу «пробел», а по- том делает еще 10 шагов. Где можно использовать такой блок? Например, в игре-квесте, где игрок может открыть дверь, только если вставит в замочную скважину нужный ключ. Этот блок нужно использовать очень осто- рожно. Программа понимает только то, что написано в ее коде. Она может ждать бесконечно, если в блоке ожидания указано неправильное условие. Обязательно подумай, что делать, если игрок не найдет ключ и застрянет в игре. Может, через несколько минут сообщить ему подсказку? ЦИКЛЫ Ожидание выполнения условия — удобный прием, но он подходит не для всех ситуаций. В программировании существует несколько стандартных способов, позволяющих в зависимости от условия выбирать или повторять нужные действия. Такие команды называют условными операторами. Они позволяют менять ход выполнения программы в зависимо- сти от выполнения условий. БЛОК «ПОВТОРЯТЬ ВСЕГДА» Повторяет действия внутри блока бес- конечное число раз. Этот блок можно использовать для основного кода програм- мы — совершения действий, которые долж- ны происходить в программе постоянно (как падение морковок с неба).
Этот скрипт заставит Царапку бесконечно подпры- гивать, пока пользователь программы не нажмет на красный знак остановки ® . Обрати внимание, что внизу этого блока нет вы- ступа. Так что ты не сможешь ничего подцепить снизу к этому блоку. Программа будет всегда вы- полнять этот блок и не сможет из него выйти или перейти к последующим блокам. Но изнутри этого блока можно передать управление другому скрипту. и) Помни, что не все действия стоит размещать внутри этого • блока! Например, значение переменной обычно задается только один раз. Поэтому ставь эту команду перед блоком «всегда». Если она окажется внутри, то при выполнении команд этого блока этой переменной снова и снова будет присваиваться одно и то же значение, а программа будет работать медленнее. БЛОК «ПОВТОРИТЬ ОПРЕДЕЛЕННОЕ ЧИСЛО РАЗ» Этот блок повторяет команды не бес- конечно, а столько раз, сколько указано в окошке параметра. Затем программа переходит к следующим блокам. Так что ты легко можешь заставить Ца- рапку подпрыгнуть 10 раз подряд.
БЛОК «ВЫПОЛНИТЬ ПРИ УСЛОВИИ» Этот блок совершает действие только при выполнении определенного условия. Ца- рапка будет ходить из стороны в сторону, а если... он касается края сцены, то разда- ется удар в барабан, кот разворачивается и идет в другую сторону. Если кот прошел 10 шагов и не коснулся стены, то програм- ма пропускает все, что расположено вну- три блока «если... то», и Царапка начинает следующие десять шагов. Давай заставим Царапку при встрече с собакой разворачиваться и убегать. (Спрайт собаки можно найти в библиотеке.) Царапка двигается быстрее собаки — делает «за один ход» 20 шагов, а не 10, и поэтому может убежать. Скрипт для спрайта собаки: Скрипт для спрайта Царапки:
БЛОК «ВЫПОЛНИТЬ ПРИ УСЛОВИИ... ИНАЧЕ ВЫПОЛНИТЬ...» Этот блок, как развилка на дороге, открывает два пути. Куда идти дальше? Все зависит от усло- вия. Если оно выполняется, то нужно выполнить одни действия. Если нет — другие. Посмотри на скрипт, который заставляет Царапку повер- нуть на 90 градусов, если спрайт достиг края сцены, и подпрыгнуть в противном случае. БЛОК «ПОВТОРЯТЬ, ПОКА НЕ ВЫПОЛНИТСЯ УСЛОВИЕ» Этот блок будет повторять указанные действия, пока не будет выполнено определенное усло- вие. После этого действия внутри данного бло- ка прекращаются. Этот блок отличается от трех предыдущих тем, что действия внутри него будут повторяться до тех пор, пока не будет выполнено условие.
БЛОК «СТОП» Этот блок сразу останавливает действие скрипта. Программа застывает на месте, все переменные со- храняют значения, которые у них были на момент остановки. КЛОНИРОВАНИЕ Блоки клонирования позволяют спрайтам «размножаться». При помощи этих блоков можно создавать очень интересные эффекты. Этот блок создает клон (дубликат) своего спрайта или другого объекта. Клон появляется в той же точке, где находится его прародитель. Клоны существуют, только пока запущен скрипт, в котором они были созданы! Это не копии спрайтов, им нельзя давать имена, но можно менять свойства и задавать собственные действия. Все эти изменения будут действовать, только пока работает программа. Этот блок определяет действия созданных клонов. Этот блок удаляет клон. Мл J
По команде скрипта Царапка сделает десять шагов, клонирует себя самого, после чего продолжит движение, а его клон про- должит двигаться, каждый шаг поворачивая на 15 градусов в на- правлении по часовой стрелке. №^*<44*44444 4 ♦ЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭЭД ^5SScScSS5S555553S555^5S58ci55555№3S^SIafA ^лллллллллллллллллллллллллллллллллллл Поэкспериментируй с клонами, чтобы научиться их использовать. 68
СЧЕТ В ИГРЕ В играх нужно вести счет, и в этом нам помогут переменные. Что такое переменная? Это символ или слово, которые могут заменить какое-нибудь число, фразу или название файла. Значение пере- менной может меняться, а название остается неизменным. Давай поиграем в кошки-мышки. Создай скрипты для кошки Кошка и А™ мышки- Мышка Запусти игру. Теперь при каждом запуске мышка появляется в случайном месте, а кошка начинает ее искать, крутясь в разных направлениях. Когда спрайты соприкасаются, раздается мяуканье, а счет в игре увеличивается на 1. Название переменной уникально, оно принадлежит только ей одной.
ПРИМЕР НАКОРМИ ЗАЙЦА Зайцы очень любят морковку, так что давай накормим зайца, а когда он наестся, то будет пля- сать от удовольствия! Определять сытость зайца будем при помо- щи переменной, подсчитыва- ющей, сколько раз заяц укусил морковку. Морковка-а £2x215 Морковка-Ь £2x2*В Создай несколько костюмов для морковки, показывающих, как ее ку- сает заяц. В векторном режиме это можно сделать, меняя форму мор- ковки при помощи опорных точек, а в растровом — ластиком. Нарисуй несколько костюмов для векторного зайца. Морковка-с £2x218 Морковка-d 82x212 Морковка-е £2x212 Морковка-f £2x178 Заяц и морковка появляются на экране в слу- чайных местах. Игрок должен подвинуть зайца к морковке, управляя клавишами со стрелками. Добравшись до морковки, заяц откусывает от нее по кусочку и увеличивается в размере — растет. Съеденная морковка исчезает и появляется в дру- гом случайном месте. Информация о том, сколько раз заяц укусил морковку, выводится на экран. Ког- да игрок решает, что заяц наелся, он может нажать клавишу «пробел», заяц говорит: «Наелся!», и на- чинает танцевать, двигая ушами под барабанную дробь. Для того чтобы остановить зайца, надо щел- кнуть по нему мышкой. Собери два отдельных скрипта для морковки и для зайца.
Скрипт для зайца: Скрипт для морковки: Обрати внимание, что условие «касается» присутствует только в одном из скриптов. Если добавить это условие сразу в скрипты зайца и морковки, возникнет конфликт. Чтобы при соприкосно- вении с обоими спрайтами что-либо происходило, необходимо использовать обмен сообщениями. Ты еще не раз увидишь, как обмен сообщениями используется в играх и программах на стра- ницах этой книги.
БЛОКИ «ПЕРО» I И МАТЕМАТИЧЕСКИЕ УЗОРЫ ШАРФИКИ И КАЛЯКИ-МАЛЯКИ В Скретче есть команды, позволяющие программе рисовать лю- бые узоры. Ты даже можешь сам сделать настоящий графический редактор с разнообразными печатями, кисточками и фигурами. Для всего этого нам понадобятся блоки группы «Перо». Эти блоки могут рисовать линии, цвет и толщину которых можно менять, или печатать изображение спрайта, один раз или несколь- ко раз. Сделаем простой проект с такими блоками и назовем его «Шарфики». ШАРФИКИ Нарисуй несколько простых геометрических фигур в редакторе. Sprite! Sprite2 При рисовании в векторном режиме фигуры кажутся ма- ленькими. Они могут находиться не в центре значка спрайта, а сверху или сбоку. Так происходит, потому что графический редактор воспринимает векторную фигуру не саму по себе, а вместе с фоном. Стоит перевести ее в растровый режим — она сразу становится большой и занимает весь значок спрайта. J&..
Расположи фигуру в центре спрайта. Для это- го нужно нажать крестик в правом верхнему углу редактора. На экране появятся тонкие черные линии. Перетащи точку их пересечения на фигуру. Теперь геометрическая фигура находит- ся по центру спрайта. Какое изображение ты будешь использовать — векторное или растровое — неважно. Собери для каждого спрайта код, при помо- щи которого фигуры будут двигаться по сцене и оставлять за собой следы. Запусти программу и нажимай стрелки, двигая объекты.
Если нарисовать сложную геометрическую фигуру и раскрасить фон и контур в разные цвета, то следы «шарфиков» окажутся очень причудливыми. Теперь соберем для одного из спрайтов другой код. КАЛЯКИ-МААЯКИ Запусти программу, выбери мышкой спрайт и, не отпуская кнопку мыши, начни рисовать. когда щелкнут по в<е< да перенш в указатель мышки На сцене появляются примерно такие каляки-маляки. В первом проекте мы как будто штамповали рисунок спрайтами, а во втором — просто используем блоки рисования. Если ском- бинировать эти методы, можно добиться любопытных эффектов.
БЛОКИ ГРУППЫ «ПЕРО» устлюинш цвет пера Стирает все следы на экране. Создает отпечаток спрайта на сцене. Опускает перо, после чего при движении спрайта на сцене остается след. Поднимает перо, и спрайт больше не оставляет следов на сцене. Задает цвет линии. Цвета пронумерованы так же, как в группе блоков «Внешность» — от 0 до 200. Задает цвет линии из палитры цветов. Изменяет цвет линии. К предыдущему значению добавляется число, указанное в параметре блока, и получается новый цвет. Устанавливает нужный цвет для тени пера. По умолчанию (изначально) тень имеет значение 50. Тень пера похожа на настоящую тень, только источник света мы в Скретче менять не можем. Цвет тени можно менять от 0 до 100: 100 — это черная тень, а при значении 0 тень исчезает. Изменяет цвет тени пера относительно выбранного. Устанавливает нужный размер пера. Изменяет толщину пера относительно выбранного ранее размера. Отрицательные числа сделают перо тоньше, а положительные — толще. Чтобы понять, как работают блоки из группы «Перо», надо поэкспериментировать.
о Нарисуй голубой круг (или какой захочешь) и собери для него скрипт. Если его запустить, на экране будет появляться интересный орнамент. В верхнем ряду раз- мер пера в цикле растет (изменяется на +1), а в ниж- нем — уменьшается (изменяется на -1). Попробуй создать свои узоры: меняй цвета и размеры пера и тени, число шагов, добавляй блоки, поворачивающие спрайты. Чтобы создать более сложные орнаменты, тебе понадобятся математические операции.
БЛОКИ ИЗ ГРУППЫ «ОПЕРАТОРЫ» В группе «Операторы» собраны блоки, позволяющие работать с числами и строками и управлять значениями переменных. Ты можешь узнать эти блоки по ярко-зеленому цвету. МАТЕМАТИЧЕСКИЕ ОПЕРАТОРЫ С математическими операциями ты хорошо знаком из школьного курса математики — это сложение, вычитание, умножение, де- ление и множество других операций, результатом выполнения которых может быть число или набор символов (строка). Блоки с математическими операциями имеют овальную форму. Скретч позволяет использовать такие блоки в качестве параметров. Операция сложения. Часто используется для при- своения значений переменным, изменения числа шагов, номера цвета, числа повторов действий. Операция вычитания. Используется также как опе- рация сложения. Операция умножения. Не забывай, что при умно- жении на 0 получается О! Операция деления. Вообще-то на 0 делить нельзя, но Скретч в этом случае будет использовать в ка- честве результата делимое. Г ГТ10) Выбирает случайное число из диапазона чисел (так называют отрезок между числами на чис- ловой прямой). Этот блок дает остаток от деления. Так можно про- верять, делится ли одно число на другое нацело или нет. Если результат действия равен 0, то числа делятся нацело. Этот блок округляет десятичную дробь до целого значения.
ПРИМЕР РАСШИРЯЮЩАЯСЯ СПИРАЛЬ Давай попробуем разобраться с тем, как работают математические операторы на конкретном примере, используя алгоритм для рисования расширяющейся спирали: Спрайт переходит в центр сцены - в точку с координатами 0,0. Переменная «число шагов» приобретает значение 1. Перо опускается. Устанавливается толщина пера 1, случайный цвет (один из 10 оттенков), тень пера 1. Бесконечное число раз повторяется цикл: Спрайт делает число_шагов. Поворачивает на 90 градусов по часовой стрелке. Число_шагов увеличивается в 2 раза (умножается на 2).
Обрати внимание, что в каждом следующем цикле число шагов увеличивается в 2 раза: 1, 2, 4, 8, 16, 32, 64... Продолжи это ряд самостоятельно. Запусти программу. На экране появится фигура, которая очень быстро перестанет помещаться на сцене. В этом коде мы использовали формулу геометрической про- грессии. Каждое следующее число в ряду получается умножением предыдущего на некоторое постоянное значение (в нашем случае на 2). Поэкспериментируй с другими числами. ИНТЕРЕСНО Может быть, ты уже знаешь историю про индийского царя и мудреца, придумавшего шахматы. Однажды мудрец по- казал царю свою новую игру — шахматы, и она настолько понравилась правителю, что он разрешил мудрецу само- му выбрать себе награду. Тот попросил даровать ему зер- но: за первую клетку шахматной доски — одно зернышко, на вторую — два, за третью — четыре и так далее. Царь удивился столь скромной просьбе и дал распоряжение вы- дать награду. На следующий день оказалось, что во всем царстве не хватает зерна, чтобы выполнить желание му- дреца. На шахматной доске 64 клетки. Мудрец попросил 1 + 2 + 22 +...+ 263 = 264 - 1 зерен. Чтобы записать результат, потребуется двадцатизначное число, а чтобы вместить все это зерно, понадобится помещение объемом 500 км3, что эквивалентно амбару с размерами 10 х 10 х 15 км.
СТРОКОВЫЕ ОПЕРАТОРЫ Скретч умеет работать не только с числами, но и со строками — последовательностями букв, цифр и других знаков. Строкой яв- ляется и случайный набор букв, и осмысленное слово, и целая фраза — компьютеру это не важно! Этот блок склеивает вместе последовательности символов в окош- ках-параметрах. Его можно использовать, например, чтобы твои герои могли говорить разные фразы в зависимости от ситуации. Этот блок считывает определенную букву или цифру из последо- вательности символов. При помощи него можно, например, за- шифровать слово: придумать правило и заменить буквы в слове на другие. Этот блок измеряет длину строки символов, в том числе может измерить длину числа. УСЛОВНЫЕ ОПЕРАТОРЫ Кроме математических операций в Скретче есть операторы, по- зволяющие сравнивать числа и значения. Они используются для проверки условий.
ПРИМЕР ПОВОРОТЫ Сделаем еще один проект, используя блоки «Перо» и математические операторы. Для него нам понадобятся три переменные. От- меть галочками, чтобы их значения показы- вались на сцене. В этом эксперименте нам нужно создать два скрипта. Скрипт для сцены. Щелкни по изображению сцены в нижнем левом углу экрана, перейди в область скриптов и собери маленький скрипт. Теперь программа будет передавать другим скрип- там сообщение «Рисуй здесь» при каждом щелчке мышью в любой точке сцены. Второй скрипт понадобится для рисования фигур, для него тебе понадобится создать пустой спрайт. Давайте разберем алгоритм, по которому нужно собрать скрипт. передать Рисуй здесь При запуске программы Все изображения на экране стираются. Перо поднимается (не рисовать при первом перемещении мыши). Задаем размер пера (в нашем случае 1). Программа остановилась и ждет, что же будет дальше. Скрипт продолжит работу, только если получит сообщение «Ри- суй здесь». Это сообщение передается сценой, когда кто-нибудь щелкает мышью. Затем происходит следующее: При щелчке мышью по сцене Спрайт переходит в указатель мыши. Перо опускается. Устанавливается «цвет пера» (по умолчанию черный).
Задается «число сторон» в многоугольнике (в нашем случае случайное число от 3 до 7). Рассчитывается «угол поворота». Чтобы получить равносторонний многоугольник, 360 нужно разделить на число сторон, Задается «число шагов» (в нашем случае по числу сторон). Повторить десять раз (цикл): Сделать «число шагов». (Перо опущено, поэтому на сцене рисуется линия.) Повернуть направо на угол поворота. «Число шагов» увеличить на три. (Если «число шагов» не увеличить, то программа будет рисовать многоугольник 10 раз на одном и том же месте. Проверь!) Конец цикла. (Нарисовав фигуру, программа останавливается.) когда я получу Рисуй здесь перейти в указатель мышки оотуствть перо число_сторон чакло сторон идти повернуть (X на угол поворота градусов задать угол поворота
Когда пользователь щелкает мышью по экрану снова, действие скрипта «Рисуй здесь» повторяется. Обрати внимание, что нарисованные фигуры соединены линиями, ведь мы не поднимали перо. Давай переделаем наш скрипт, чтобы он рисовал простые треугольники, не соединенные линиями. Теперь число сторон и угол принимают только одно значение — 3 и 120. Перо по щелчку мыши опускается, рисует треугольник и поднимается.
Вообще-то переменная «число сторон» здесь не очень-то и нужна, можно ее удалить и прямо указать в цикле рисования, что цикл надо повторить 3 раза. А что произойдет, если у нашего многоугольника будет большое количество сторон? Давай еще поэкспериментируем. Мы добавили в наш скрипт блок из группы «Сенсоры»: он за- дает вопрос и ждет ответа. Пока пользователь не ответит, программа не действует. Ответ пользователя становится значением переменной г ДЭ*. Эту переменную мы используем для расчета числа сторон фи- гуры, которую будем рисовать. Теперь программа никак не ограничивает число сторон много- угольника, которое можно ввести в окошке «ответ». Попробуй вводить разные числа. Обрати внимание, что при увеличении количества сторон наш многоугольник становится все больше и больше похож на круг. Результатом работы нашей программы станет множество много- угольников разного размера, часть из них будет похожа на круги, а на остальных будут хорошо заметны ребра.
СГО ИНТЕРЕСНО • Круг — это многоугольник с очень большим числом сторон. Чем больше размер многоугольника, тем больше в нем должно быть сторон, чтобы он был похож на круг. Если пользователь введет в окошке «ответ» буквы, то про- грамма ничего не нарисует. Буквенные переменные при- меняются в разных блоках, но математический оператор деления понимает только цифры. Если ему предлагают что- нибудь другое, он просто ничего не делает.
ПЕРВАЯ БОЛЬШАЯ ИГРА «МОРКОВКОПАД» Сцена 2 фон»! Новей фен: Перед тем как приступить. Обычно в играх действие происходит на каком-либо фоне, и скучно, если это будет простой белый или голубой квадрат. В Скретче есть специальная библиотека фонов, которая организо- вана по тем же принципам, что библиотеки звуков и изображений. Но ты можешь и сам нарисовать фон или загрузить его из файла. Для того чтобы открыть библиотеку фонов, щелкни значок с изо- бражением пейзажа в области фонов слева. Откроется библиотека фонов, в которой фоны разбиты по кате- гориям и темам. Чтобы выбрать нужный фон, просто дважды щел- кни на нем, и он появится на сцене, в области фонов и на вкладке «Фоны» (справа). Библиотека фонов Все В помещении На открытом воздухе Прочее beach malibu Замок Город Полёт Holiday Музыка и танцы Космос Спорт Подводный мир brick wall! brick wall2 canyon castle5 chalkboard city with water city with water2 С фонами можно работать так же, как с костюмами спрайтов — рисовать в векторном или растровом режиме, создавать допол- нительные фоны на основе уже имеющихся при помощи пункта меню «дублировать».
ИГРА «МОРКОВКОПАД» Фон поможет нам, например, улучшить игру, в кото- рой заяц ел морковки. Пусть морковки падают с неба, а заяц ловит их, одновременно перепрыгивая или обходя лужи, ведь зайцы очень не любят воду! За до- бычу морковки заяц получает очки, а за попадание в лужу — теряет. Заяц толстеет, поедая морковки, по- этому ему становится все труднее обходить лужи. Если игроку удалось так накормить зайца, что он достаточно подрос и не слишком сильно вымок, то игра переходит на следующий уровень. При этом морковки начинают падать с неба все быстрее. Если игрок съел морковки на 4 уровнях подряд, он получит приз — капусту. Создание игры будет состоять из нескольких шагов.
РИСУЕМ ФОНЫ Нарисуй в графическом редакторе четыре фона с разным количе- ством луж. Запусти старую игру, подставив любой из новых фонов. Сразу видно, что заяц и морковка слишком велики и не помещаются в проходах между лужами. Так что нам придется уменьшить раз- меры спрайтов зайца и морковки. Подсказка: если векторный рисунок состоит из нескольких фи- гур, то обведи все объекты инструментом выделения — они будут выделены одновременно. Если тебе не хочется перерисовывать спрайты, можно просто добавить в начало скрипта морковки блок М-...14 4 Теперь достаточно подобрать значение параметра, а спрайт и все его костюмы изменятся одинаково.
Знак % означает 1/100 (одну сотую) долю какой-либо вели- чины. Если говорят, что число А составляет 10% от числа Б, это значит, что число А — одна десятая часть числа Б, то есть меньше числа Б в 10 раз. СКРИПТ МОРКОВКИ Нам нужно создать скрипт для морковки, падающей с неба. В этом варианте игры морковке понадобится только один костюм (умень- ши его до нужного размера). Давай поподробнее рассмотрим алгоритм падения морковки. При запуске «Не вращать» Морковку Всегда выполнять: Появиться в случайном месте сверху Показать Морковку Задать направление движения вниз Повторять, пока не коснется края: Падать вниз со «скоростью» Если Морковки коснулся Заяц, то Убрать Морковку Передать информацию о событии Убрать Морковку
Морковка появляется в случайном месте сверху экрана и падает вниз. Если Заяц ловит ее, то она исчезает с экрана и передается информация об этом событии. Если же Заяц не поймал морковку, то она продолжает падать и пропадает, когда достигает нижнего края сцены. Затем все начинается сначала: новая морковка по- является в случайном месте и начинает падение. Обрати внимание, что последнее действие «Скрыть Морковку» должно находиться вну- три цикла «всегда». Если оно попадет внутрь цикла «повторять, пока не», то Морковка бу- дет пропадать после выполнения первого же шага. V ДОБАВЬ ЕЩЕ МОРКОВОК Продублируй спрайт морковки, тогда новые спрайты — Морков- ка?, МорковкаЗ — получат тот же скрипт, что и исходный. В Скретче при дублировании спрайтов дублируются и скрип- ты. Если в программе понадобятся несколько похожих спрай- тов, которые будут действовать одинаково, лучше сначала создать скрипт для одного спрайта, а потом дублировать его. Если мы теперь запустим игру, то увидим, что все три морковки появляются и падают одновременно. Интереснее сделать так, чтобы они падали по очереди. Для этого в скрипты 2-го и 3-го спрайтов мы добавим неболь- шую временную задержку — блок «ждать 2 секунды», чтобы эти морковки появлялись через некоторое время. Значение можно сделать любым, даже случайным, чтобы задержка при появлении морковок была разной. Это может быть случайное число от 1 до 5.
скрыть когда щелкнут по стмль вращения не вращать ждать 0 секунд перейти в х: -100 повернуть в направлении скорость скрыть передать Заяц съел морковку IDO 15 и СКРИПТЫ ДЛЯ ЗАЙЦА Теперь соберем скрипты для Зайца. Их будет несколько, но все они располагаются на одном экране. Для того чтобы удобнее было рас- ставить скрипты, воспользуйся правой кнопкой мыши и пунктом меню «упорядочить». Первая группа скриптов описывает перемещения Зайца по ко- мандам с клавиатуры. когда клавиша стрелка направо нажата ElCCTJEPVJuJErJT Поэкспериментируй с длиной шага, который Заяц делает при нажатии клавиш. Чем шаг больше, тем быстрее Заяц движется. 91 I
J;. • Вторая группа скриптов описывает запуск игры: Установить Фон1 Пока Заяц не окажется на «траве», повторять: Поставить Зайца в случайное место Установить размер Зайца Задать «Номер уровня» Задать значение счетчика «Морковка»: Задать значение счетчика «Вода!» Задать значение «Скорость» Всегда выполнять: Если Заяц коснулся одного из цветов воды Увеличить значение «Вода!» на 1 Уменьшить значение «Морковка»: на 1 Разберем подробнее, что происходит в этом скрипте. 1. Открывается первый фон. 2. В случайном месте экрана появляется Заяц. Если Заяц случай- но окажется в воде при появлении на экране, игрок сразу по- лучит штрафные очки. Чтобы Заяц на старте не попал в воду, приходится вновь и вновь случайным образом размещать Зайца, пока он не окажется на травке.
3. Затем устанавливается размер Зайца. Это делать не обязатель- но, можно просто уменьшить размер спрайта в графическом редакторе. Но если один и тот же спрайт используется в раз- ных программах, удобнее изменять его размер в программе. 4. Следующие действия — это задание переменным первона- чальных значений, то есть значений, которые должны у них быть до начала действий игрока в программе. • Переменная «Номер уровня» запоминает, на каком уровне находится игрок. Она используется для сообщения о пере- ходе на следующий уровень и об окончании всей игры. Эта переменная выводится на экран, чтобы игрок знал, на ка- ком уровне он играет. • Переменная «Морковки:» запоминает, сколько морковок съел Заяц. Это число тоже выводится на экран. • Переменная «Вода!» запоминает, сколько раз Заяц на- ступил в лужу. Она тоже выводится на экран и позволяет остановить игру, если Заяц слишком сильно вымок. • Переменная «Скорость» управляет скоростью падения морковок. Значение этой переменной — это число шагов за одно действие. Чем оно больше, тем быстрее морковка движется по экрану. 5. При старте игры игрок двигает Зайца, стараясь поймать морковки. Если Заяц попадает в лужу, то счетчик воды уве- личивается. Игрок получает штрафные очки — теряет одну пойманную морковку. Для того чтобы переменные показывались на сцене, нужно в группе блоков «Данные» по- ставить слева от них галочки. Возле переменной «Скорость» мы не ставим галочку — игроку ее знать не обязательно. *о •о Обрати внимание, что в скрипте используется условие «или» из группы блоков «Операторы» • Блок проверки условия «если..., то» проверяет, касается ли Заяц определенного цвета. Для того чтобы указать конкрет- ный цвет, щелкни мышкой сначала внутри окошка параметра блока «касается», а затем на соответствующий цвет на сцене. Цвет в окошке параметра изменится на нужный. • Блоки можно комбинировать так, чтобы выби- рать не из двух условий, а из нескольких С~
КОНЕЦ ИГРЫ Последний скрипт Зайца описывает, что происходит с Зайцем, ког- да он ловит морковки, как игра переходит на следующий уровень и как она заканчивается. Разберем его подробнее. 1. Скрипт запускается, если Морковка отправила сообщение «Заяц съел морковку» (спрайты Зайца и Морковки встретились, то есть у них оказались одинаковые координаты). Заяц растет, его раз- мер надо увеличить. 2. Если размер становится больше 400 (это число можно менять), Заяц наелся и пора переходить на следующий уровень. Увели- чиваем номер уровня на 1 и сообщаем об этом. Размер Зайца на новом уровне опять уменьшается до 50%, как в начале игры. Открывается новый фон, и Заяц появляется на траве в случай- ном месте. С каждый уровнем морковки падают все быстрее и быстрее. 94
3. Проверяем состояние переменных «Вода» и «Номер уровня», если Заяц промок, останавливаем игру. Если игрок завершил 4 уровень и переменная номера уровня равна 5, то объявляется победа игрока. 4. Если нет ни проигрыша, ни победы, работа скрипта завершается и управление игрой передается в скрипт Морковки. ДОБАВЛЯЕМ ПРИЗ — КАПУСТУ Добавь новый спрайт — капусту — и его скрипты. При запуске игры Капуста показывается в центре сцены, а потом исчезает до того момента, пока не получает со- общение «Держи капусту» из скрипта «Заяц съел морков- ку». Игра останавливается. ЧТО МОЖНО ИЗМЕНИТЬ В ПРОГРАММЕ • Использовать общий фон и нарисовать лужи в виде отдельных спрайтов. Тогда подсчет очков «воды» будет вестись при столк- новении спрайта Зайца со спрайтами луж. • Вынести в отдельный скрипт блок команд, отвечающих за по- явление Зайца на траве. Этот скрипт будет вызываться сообще- нием из других скриптов. Это нужно будет сделать, если нам понадобится изменить принцип появления Зайца на экране, мы сделаем изменения только в одном месте. • Использовать другой способ для управления движением Зайца. Можно указывать мыш- кой направление движения. • Теперь Зайца можно перемещать по сцене, щелкая мыш- кой в том месте, куда должен перейти Заяц. Удобно ли такое управление? • Сделать так, чтобы спрайты луж перемещались. Зайцу будет труднее одновременно обходить лужи и ловить морковки.
«охотники ЗА ПРИВИДЕНИЯМИ» ВЫХОДЯТ НА ТРОПУ войны Давайте сделаем игру, в которой мальчик-волшебник должен проникнуть в старинный замок с сокровищами. Только вот беда — замок охраняют привидения! Победить их поможет взмах вол- шебной палочки. Каждый уровень игры открывает новое место в замке или в его окрестностях: дорожка, входная дверь, лест- ница — и везде живут привидения. Последний уровень — это длинная галерея, ведущая к выходу из замка. С каждым уровнем привидения становятся все сильнее и сильнее, поэтому на до- рожке к замку волшебнику необходимо продержаться 50 секунд, а в галерее только 10. Чтобы перейти на следующий уровень, нужно набрать не меньше 10 очков. Набранные очки сохраняются и суммируются. Кто наберет больше всего очков за 5 уровней? Вот как выглядит сцена этой игры:
ИНВЕНТАРЬ Нам понадобятся: • Фоны сцены из библиотеки фонов, изображаю- щие разные места в замке. • Спрайт мальчика-волшебника из библиотеки спрайтов. Мы добавим ему еще одну волшебную палочку, чтобы целиться в привидения, пролета- ющие с разных сторон. • Спрайт привидения и несколько костюмов для I него. ДОБАВЛЯЕМ ВТОРУЮ ПАЛОЧКУ И ВОЛШЕБНЫЙ СВЕТ Откроем спрайт мальчика-волшебника в графическом редакторе и добавим вторую волшебную палочку. Для этого надо перейти в вектор- ный режим, выделить палочку инстру- ментом , скопировать ее (клавиши Ctrl+C), вставить (клавиши Ctrl+V) и вло- жить во вторую руку.
Теперь добавим нашему герою два костю- ма. Продублируем первый костюм и при помощи инструмента / заставим кончик волшебной палочки светиться. Так волшеб- ник будет прогонять привидения, пролета- ющие над ним. Продублируем первый костюм еще раз и подрисуем волшебный свет к кон- чику нижней палочки. Он будет про- гонять привидения, летающие снизу.
ДОБАВЛЯЕМ ФОН Добавляем из библиотеки фонов пять изображений, соответствующих разным местам в замке. Расставим их в соотетствии с порядком появления в игре. (Ты можешь просто перетащить их мышкой на нужные места.) Назови фоны так, чтобы ими было удобно пользоваться, — в скриптах мы будем подклю- чать новый фон при определенных условиях. Новый фон: ДОБАВЛЯЕМ ПРИВИДЕНИЯ Добавим спрайт привидения из библиотеки спрайтов и не- сколько костюмов для него. При попадании в привидение вол- шебного света оно будет менять костюм, становиться прозрач- ным и потом исчезать. Новый костюм: 2 4&0хЗЮ 3 460x360 4 480х3е0 5 45йс2«
ДОБАВЛЯЕМ СООБЩЕНИЕ О ПОБЕДЕ И ПРОИГРЫШЕ Чтобы сообщить о победе или поражении в игре, нам понадобятся картинки, которые будут появляться на экране при выполнении со- ответствующих условий: когда истечет время игры или если игрок пройдет все уровни. Для этого создадим новые спрайты и нарисуем в них что-то вроде этого: В графическом редакторе Скретча есть специальный инструмент, позволяющий написать текст на картинке, но, к сожалению, в нем в настоящий момент можно использовать только латинские буквы. Так что русские буквы придется рисовать (мы использовали прямые линии). Чтобы облегчить себе жизнь, можно создать собственную библиотеку русских букв — нарисовать их в виде отдельных файлов и загружать в проекты. Второй спрайт понадобится для вывода информации о проигрыше.
Перетащи крестик, соответствующий центру спрайта, в середину каждой из картинок, чтобы на сцене они оказались тоже в центре. СОВЕТ Пока скрипты спрайтов еще не написаны, все спрайты по- казываются на сцене одновременно. Скрыть или пока- зать отдельные спрайты можно, щелкнув на блоках из группы «Внешность».
ДОБАВЛЯЕМ СКРИПТЫ ДЛЯ ФОНОВ, ВОЛШЕБНИКА И ПРИВИДЕНИЙ ОБЩАЯ ЛОГИКА ИГРЫ Теперь, когда инвентарь подготовлен, нужно продумать последо- вательность действий в игре и написать код — собрать скрипты. Разобьем игру на несколько этапов, чтобы продумать все мелочи. Запуск игры. Начинается первый уровень игры. Нам понадобятся: • фон первого уровня, волшебник и привидения; • счетчики для очков уровня, всей игры и времени (таймер). В начале игры все эти значения должны быть равны нулю. 1. Привидения начинают двигаться, волшебник атакует их взма- хами волшебной палочки. При каждом попадании счет уровня и общий счет увеличиваются на 1. 2. Время игры на первом уровне подходит к концу, теперь нуж- но проверить, сколько очков набрано. Если игрок успел на- брать 10 очков, включается следующий уровень, иначе игра заканчивается — выводится сообщение «Конец игры» и раз- дается печальный звук. Переход на следующий уровень. Нам понадобятся: • фон нового уровня, волшебник и привидения; • счетчики для очков текущего уровня, всей игры и таймер. 3. Счетчик уровня обнуляется, а общий счет игры сохраняется. Запускается таймер текущего уровня. 4. Сложность должна возрастать, чтобы игроку было интересно, и он чувствовал, что его умение и ловкость растут. Поэтому 10 привидений нужно победить быстрее, чем на предыдущем уровне — не за 50 секунд, а за 40, 30 или 20. 5. Время подходит к концу, нужно проверить, сколько очков набрано. Если игрок успел набрать 10 очков, включается следующий уровень, иначе игра заканчивается — выводится сообщение «Конец игры» и раздается печальный звук.
Окончание игры. Если на последнем, 5-м уровне игрок набрал 10 очков за 10 се- кунд, то появляется надпись «Победа!», звучит радостная музыка и игра останавливается, в другом случае выводится сообщение «Конец игры» и раздается печальный звук. СКРИПТ ВОЛШЕБНИКА Скрипты можно создавать в любом порядке. Некоторые разработчики игр стараются двигаться в соответствии с по- рядком действий в игре, другие сразу создают отдельные работающие фрагменты, а потом добавляют функции. Давайте начнем с действий нашего героя — волшебника. Он должен двигаться вслед за указателем мыши. При запуске игры Обнулить значение счета уровня Обнулить значение общего счета Передать сообщение о начале 1-го уровня Бесконечно повторять действия: Если расстояние до указателя больше 10, то Повернуться к указателю мышки Сделать 2 шага повернуться к указатель мышки идтм © шагов С
Чтобы волшебник не дергался, стоя на одном месте, мы поставили условие: ничего не предпринимать, пока расстояние до указателя мышки меньше 10. Потом, когда на сцене появятся привидения, можно будет поэкспериментировать с этим значением. ВТОРОЙ СКРИПТ ВОЛШЕБНИКА описывает, что происходит с нашим героем, когда он попадает в привидение. Счет (уровня и игры) увеличивается, и на кончике волшебной палочки появляется вспышка света. Если в этот момент волшебник движется вверх, то работает «верхняя» палочка, если вниз — «нижняя». Про то, как работать с направлением движения, мы говорили на с. 24: направлению вверх соответствует диапазон значений от -90 до 90. Спрайт привидения передает сообщение «Попал» Увеличить общий счет на 1 Увеличить счет уровня на 1 Играть звук Если волшебник движется вниз, то Сменить костюм: свет «нижней» палочки Иначе (волшебник движется вверх) Сменить костюм: свет из «верхней» палочки Ждать полсекунды Вернуть основной костюм и
СКРИПТЫ ПРИВИДЕНИЯ Пора подумать и о врагах — заставить двигаться привидение. При запуске игры Привидение помещается в случайную точку Бесконечно повторять действия: Сделать три шага Повернуть на случайный угол Если на краю, оттолкнуться Но что происходит, когда волшебник наносит удар по привиде- нию? Все очень просто: Когда мышка щелкает на спрайте привидения Передать сообщение «Попал» Эффект «Призрак» (привидение бледнеет) Ждать 1 секунду Привидение пропадает Новое привидение появляется в другой, случайной точке экрана 1
БОЛЬШЕ ПРИВИДЕНИИ Ловить одно привидение слишком просто и скучно, пусть их будет больше. Продублируем спрайт привидения, а скрипты оставим без изменений. Теперь все привидения будут появляться в случайном месте, поворачиваться и летать. Как ты думаешь, сколько привидений понадобится, чтобы играть было достаточно сложно, но можно было победить? О
СКРИПТ ПЕРЕХОДА НА СЛЕДУЮЩИЙ УРОВЕНЬ Итак, привидения умеют летать, а волшебник — сражаться. Теперь разберемся с общей логикой игры. Нам понадобится пять скрип- тов (по количеству уровней игры): При запуске игры возникает сообщение «Уровень 1». Скрипт сцены получает его, включает первый по порядку фон и обнуляет таймер (группа блоков «Сенсоры»). На сцене появляются и начинают двигаться волшебник и при- видения (в соответствии со своими скриптами). На 1-м уровне игроку дается 50 секунд. Как только значение тай- мера достигает 50, игра проверяет количество набранных очков.
Если волшебник не смог победить 10 привидений, увы, игра за- канчивается. Если смог, начинается 2-й уровень. Алгоритм работы этого уровня такой же, как и у предыдущего, но время игры мень- ше — 40 секунд. На следующих уровнях оно будет еще меньше, и на 5-м, по- следнем уровне мы дадим игроку только 10 секунд. Впрочем, ты можешь выбрать другие значения. СКРИПТЫ ПОБЕДЫ И ПОРАЖЕНИЯ Нам осталось описать поведение игры в случае победы и в случае поражения. Скрипт сцены отправляет сообщение «Конец игры» или «Победа». Спрайты для них мы уже нарисовали. Теперь со- берем сами скрипты. Они состоят из одинаковых блоков, разли- чаются только параметры — сообщение и музыка. При запуске игры Скрыть спрайт ЯЛ При получении сообщения 4HF Перейти в верхний слой (поверх всех спрайтов) Fi Скрипт победы: 1 , , , Г 1 ▼ Показаться Проиграть музыку Остановить скрипт Скрипт поражения: " *
Проверим работу нашего скрипта. Все делается как нужно, но спрайты привидений и волшебника продолжают дви- гаться. Команда «стоп все» остановила не всю игру, а только действие скриптов своего спрайта (для которого она написа- на). Поэтому нам придется добавить еще один небольшой скрипт для всех спрайтов. Теперь остановится все, кроме таймера, ко- торый будет продолжать отсчитывать секунды. Так уж он устроен — его можно перезапустить, но невозможно остановить. когда я получу Конец игры стоп все 1 Проще всего было бы не показывать таймер на экране, но игроку нужно знать, сколько осталось времени до конца уровня. Справиться с этой задачей помогут специальные спрайты с изображением соот- ветствующих цифр, которые можно вывести на экран, когда таймер достигнет нужного значения. Еще более интересная и сложная задача — обратный отсчет вре- мени. Таймер работает, отсчитывая секунды, а игрок видит, как уменьшается время, отведенное для игры: 50,49,48... и так далее. I
КАК СДЕЛАТЬ КОД ИГРЫ КОРОЧЕ Скрипты сцены очень похожи, меняются только номер уровня, номер фона и время игры. Повторяющиеся действия можно со- кратить, используя для них один код, в котором будут меняться параметры: когда а получу Проверка егда если имя фона — В ' то I задать Таймер фона значение £3 — если имя фона О I задать Таймер фона значение «И если имя фона =0 , то I задать Таймер фона значение Щ еслв □ го задать Таймер фона значение Ш . если 'ими фона И , го I задать Таймер фона энанемеШ Теперь мы можем легко добавлять новые уровни, а новые скрипты при этом писать не надо. Что еще можно сократить в этом коде? • Добавить переменную «номер фона», тогда мож- но будет не указывать имя конкретного фона. • Уменьшать значение переменной, хранящей про- должительность игры при переходе на следующий уровень.
Если внести в наш скрипт все эти изменения, он станет коротким, но менее понятным.
Сделать скрипт коротким и понятным легко, для этого достаточно выделить блоки, которые будут отвечать за «Проверку» и «Смену фона»: Если ты решишь добавить еще несколько уров- ней, достаточно будет изменить номер последнего фона (в блоке сравнения с переменной «фон#») и проконтролировать значение таймера уровня, чтобы оно не стало нулевым или отрицательным. Для смены фонового изображения нужно указать только имя первого фона, а остальные будут ме- няться автоматически. 112
КАК СДЕЛАТЬ ИГРУ СЛОЖНЕЕ И ИНТЕРЕСНЕЕ Такую игру легко можно усложнить. Привидения могут влиять на волшебника, постепенно превращая его в призрака. Если он растает до того, как нейтрализует 10 привидений, игра проиграна! Примени к волшебнику эффект «призрак», как для привидений, и свяжи его, например, с щелчками мыши — с каждым «заклина- нием» волшебник будет терять энергию. Чтобы добавить другие виды привидений, продублируй спрайт первого привидения, добавь новые костюмы и удали старые. Скрипты сохранятся, а на сцене появятся новые спрайты. На разных уровнях игры могут летать разные привидения. При переходе на новый уровень появляется соответствующее сообще- ние, которое может управлять видом (спрайтами) привидений.
10 СОЗДАЕМ НОВЫЕ БЛОКИ И ВЫВОДИМ НА ПОЛЕ БОЯ «ТАНЧИКИ» Все знают игру «Танчики», в которой на поле боя встречаются наши и вражеские танки. Вражеские танки появляются сверху и двигаются в нашу сторону, время от времени стреляя. У игрока есть только один танк, у которого три жизни — вражеский снаряд может попасть в него три раза. После этого игра завершается. Каж- дый подбитый вражеский танк приносит игроку одно очко. При столкновении танков подбитыми считаются оба! Со временем игра усложняется — танков становится больше, но и очков за победу игрок получает больше. Задача игрока — продержаться в схватке как можно дольше и набрать как можно больше очков. Выглядит это все примерно так:
ОБЩЕЕ ОПИСАНИЕ ИГРЫ Игра кажется простой, но при ее написании нужно учесть доста- точное количество сложных моментов. Поэтому начнем с пользо- вательского сценария и общего алгоритма. • Игрок запускает игру. Он видит на экране свой и вражеский танки. Клавишей пробел игрок стреляет. Стрелка вверх дви- гает танк вперед, а стрелка вниз — назад. Стрелками вправо и влево танк можно повернуть в нужную сторону. • Если наш снаряд попал во вражеский танк, тот взрывается. Мы получаем 1 очко. • На первом уровне новые вражеские танки появляются на экране каждые 10 секунд. • При наборе 5 очков игрок переходит на 2-й уро- вень: на экране могут находиться два вражеских танка одновременно, а интервал между их появ- лением уменьшается на 1 секунду. • Когда игрок набирает 10 очков, на экране уже мо- гут находиться три вражеских танка, а интервал сокращается еще на одну секунду. • Далее количество вражеских танков уже не растет, но каждые набранные 5 очков уменьшают время до появления нового врага. На экране может на- ходиться разное количество танков, их количество зависит от уровня и от точности нашей стрельбы. • Вражеские танки стреляют каждые 5 секунд. • Если вражеский снаряд попадает в наш танк, раздается взрыв. У нашего танка три жизни, так что наш танк может пережить только три попадания или столкновения. • Если у нашего танка кончились жизни, игра заканчивается. • Игрок выигрывает, если достигает 9-го уровня (интервал между появлением новых вражеских танков составляет 2 секунды) или набирает 100 очков.
ИНВЕНТАРЬ Игрок управляет своим танком и встречается с вражескими тан- ками. И те и другие стреляют снарядами. Нам нужно будет нари- совать свой и вражеский танки. И, как и в предыдущей игре, нам не обойтись без спрайтов для сообщений о победе и поражении и фона с нарисованным пейзажем. Нарисуем наш танк (этот спрайт мож- но так и назвать «Наш») и назовем пер- вый костюм «Прицел». Танку понадобятся два костюма: на случай выстрела и на случай попадания в него вражеского снаряда. Выстрел Попадание Теперь займемся противником: просто продублируй только что созданный спрайт и переименуй его во «Врага», только не забудь перекрасить все костюмы танка в синий цвет. (Вспышка выстрела может остаться такой же.) Продублируй перекрашенный спрайт еще два раза и назови новые танки «Враг2» и «ВрагЗ».
Точно так же поступаем и со снарядами: соз- даем и рисуем новый спрайт, который можно назвать «Наш снаряд». Дублируем спрайт, перекрашиваем в синий цвет и называем его «Их снаряд!». Нам еще понадобятся фон (поле битвы) и сообщения о победе и поражении. (Эти русские буквы были сделаны из окружностей. В векторном режиме на кривую можно добавить нужное коли- чество точек, перемещая которые ты сможешь превратить круг в любую форму.)
СОВЕТ Если ты собираешься использовать русские буквы, сохрани алфавит в виде графических файлов. Войска готовы выйти на позиции! Но сначала напишем код для взаимодействия нашего танка и одного вражеского, потом раз- множим спрайты вражеских танков и снарядов, чтобы сделать игру сложнее и интереснее. ТАНК ПОЯВЛЯЕТСЯ НА ПОЛЕ В начале игры наш танк появляется внизу экрана. Игрок управляет им при помощи клавиш со стрелками, а пробелом делает выстрел. Соберем код для спрайта «Наш танк». когда щелкнут по задать Осталось жизней значение передать - 3 При запуске программы скрипт за- дает значение переменной «Осталось жизней» и передает сообщение «Но- вый танк». когда я получу Новый танк перейти в х: О у: j| повернуть в направлении сменить костюм на Прицел пока зап» задать Направление нашего 31 Сообщение «Новый танк» запускает скрипт, который вы- водит танк на поле боя. В Скретче есть встроенная переменная «направление», которая позволяет легко уз- нать, куда движется спрайт. А переменная «Направле- ние нашего» пригодится для ориентации нашего снаряда и вражеского танка.
ТАНКИ ДВИГАЮТСЯ И СТААКИВАЮТСЯ Танки должны двигаться. А что будет, если они столкнутся? Да- вайте создадим скрипты, которые позволят игроку управлять поведением танка. когда клавиша стрелка направо нажата повернуть (“И на Q градусов Танк должен не только ездить вперед и назад, но и уметь пово- рачивать. Для того чтобы игрок мог управлять танком с помощью стрелок на клавиатуре, понадобит- ся несколько скриптов. Отдельные блоки для проверки стол- кновения с каждым из танков на поле не нужны. Лучше сделать общий блок «Проверка столкновения». передать Столкнулись
Сообщение о столкновении когда я получу Столкнулись сменить костюм на Подбит передать Конец игры меняет костюм нашего танка на «Подбит» и отправляет со- общение о конце игры. Столкно- вение приравнено к попаданию вражеского снаряда. Без отдельного скрипта, анализирующего столкновения, легко можно обойтись, просто добавив смену костюма и передачу со- общения в код проверки столкновения. Но последствия столк- новения затрагивают не только наш танк, но и вражеский. Эту задачу лучше выделить в отдельную процедуру — сообщение о столкновении будет затрагивать и вражеский танк: менять его костюм и уничтожать. ВЫСТРЕЛ ВО ВРАГА Чтобы танк выстрелил, игрок должен нажать пробел. При выстреле возникает сообщение «Выстрел», внешний вид танка меня- ется и раздается звук. Через 1 секун- ду танк вернется к исходному виду. Сообщение о выстреле понадобится снаряду, который должен вылететь в сторону врага. когда клавиша пробел нажата передать Выстрел сменить костюм на Выстрел играть звук drum buzz ждагь Q секунд сменить костюм на Прицел
НАШ ТАНК ПОДБИТ Последний скрипт, который нужен нашему танку, — обработка попадания в него вражеского снаряда. Сообщение об этом факте будет передавать вражеский снаряд. При получении сообщения наш танк на 1 секунду меняет костюм на «Подбит», потом пропадает. Число жизней танка уменьшается на 1. Сразу происходит проверка: если жизни закончились (рав- ны 0), то игра заканчивается. Если жизни еще есть, то отправляется сообщение «Новый танк». Его ловит спрайт танка, и все проис- ходит заново. когда я получу Попали в нашего сменить костюм на Подбит ждан» О секунд скрыть изменить Осталось жизней на если Осталось жизней = Q , передать Конец игры ririOMtz передать Новый танк ПОВЕДЕНИЕ СНАРЯДА В начале игры нашего снаряда не должно быть видно на экране. когда щелкнут по скрыть
показать когда я получу перейти в Наш всегда скрыть стол этот скрипт повернуть в направлении Направление нашего край Враг! если передать Попали во Врага2 стол этот скрипт если касается перейти в Наш Наш снаряд взрывается передать Попали во Врага! стол этот скрипт если касается Наш снаряд взрывается передать Попали во ВрагаЗ если касается Врагз стол этот скрипт Наш снаряд взрывается Получив сообщение «Выстрел», снаряд начинает действовать. Он перемещается в стартовую точку — место, где расположен танк игрока, становится виден на экране и летит, причем на- правление его движения долж- но совпадать с направлением движения танка в этот момент. Достигнув края сцены, снаряд должен исчезнуть, поэтому скрипт постоянно проверяет положение спрайта на сцене. Вторая проверка — попадание во вражеские танки. В этом слу- чае снаряд замирает на долю секунды, пропадает и пере- дает сообщение о попадании в конкретный танк. Подбитый танк получает это сообщение, а действие скрипта «Выстрел» останавливается.
определить Наш снаряд взрывается Взрыв снаряда будет использоваться не один раз, поэтому мы сделали для него отдельный блок. Теперь пора разобраться с тем, как ведут себя вражеские танки и снаряды. ждать (29 секунд (Крыть I перейти в Наш НА СЦЕНЕ ПОЯВЛЯЕТСЯ ВРАГ Вражеский танк появляется на любом месте в верх- ней части сцены. Исходное направление его движе- ния (ориентация) также может быть любым. Обнаруживая наш танк, враг поворачивается в его сторону и через несколько секунд делает выстрел. Теперь вражеский танк будет двигаться и поворачи- ваться вслед за танком игрока. На 2-м уровне на экране будут уже два вражеских танка, на 3-м уровне — три. Каждый из этих тан- ков работает по такому же алгоритму, что и первый. Уровней (и танков) может быть много, но мы огра- ничимся тремя. Соберем код для появления и дви- жения вражеского танка. Участки кода не повторяются, но чтобы сделать скрипт более понятным, мы создали два отдельных блока — «Появление танка» и «Движение и выстрел танка». когда я получу Запуск Bparal Появление танка нее! да Движение и выстрел танка
Танк появляется в случайном месте вверху экрана и начинает искать цель: поворачивается на случайный угол, делает паузу, несколько шагов и опять замирает. к определить Появление танка сменить костюм на Прицел показать перейти в х: выдать случайное от -220 выдать случайное от 220 -90 90 градусов ждать секунд идти 0 шагов I Потом вражеский танк начинает повторять одни и те же действия: по- ворачивается к нашему танку, подхо- дит ближе, прицеливается, стреляет. Переменная «Направление вра- га» запоминает угол поворота тан- ка, чтобы передать его вражескому снаряду. Паузы в 5 и 10 секунд позволят игроку прицелиться и подбить вра- жеский танк. С этими значениями можно экспериментировать: чем они меньше, тем быстрее двигается и стреляет враг.
Когда враг получает сообщение о том, что он подбит (это со- общение передает снаряд игрока), костюм меняется, танк про- падает, но передает сообщение об изменении счета и запуске нового танка. Если вражеский танк сталкивается с нашим, то он взрывается, и игра заканчивается. ВЫСТРЕЛ ВРАГА Враг будет стрелять каждые несколько секунд, вне зависимости от своего положения и действий игрока. Сначала вражеский снаряд скрыт, так же как и снаряд игрока.
КОГДд я получу Выстрел Bparal перейти в Bparl показать повернуть в направлении Направление врага всегда если ИДТИ 0 шагов стол ЭТОТ скрипт скрыть перейти в Враг2 если передать Попали в нашего ждать ( секунд скрыть перейти в Наш СТОЛ этот скрипт Снаряд перемещается в стартовую точ- ку — место, где расположен вражеский танк, становится виден на экране и на- чинает движение, причем направление полета должно совпадать с направле- нием танка. Написанный для танка Bparl скрипт можно продублировать в остальные танки. Только не за- будьте поменять соответствующие сообщения — «Запуск Врага2», «Попали во ВрагаЗ» и так далее. Если случайно забыть исправить какое-нибудь сообщение, то одно попадание во вражеский танк случайно уничтожит всех врагов.
ВРАГОВ СТАНОВИТСЯ БОЛЬШЕ Игра почти готова, но не создан переход на новые уровни, на ко- торых появляются все новые и новые танки. Этот скрипт можно привязать к любому из танков, но лучше, если такой код будет максимально обособлен. Проблему решит пустой спрайт с кодом запуска программы и смены уровней, теперь всем будет понятно, что этот код относится не к конкретному спрайту, а ко всей игре. При запуске игры задаются первоначальные значения пере- менных и передается сообщение о включении первого уровня (один танк). когда щелкнут по задать Подбито значение задать Уровень если Уровень задать Время между врагами передать Запуск Врага! Процедура «Запуск Bparal» (при выполнении определенных условий) запускает второй и третий танки. В этом скрипте использована функция mod — математиче- ская операция, вычисляющая остаток от деления первого числа на второе. Звучит страшно, но не пугайтесь, все очень просто. Следующий уровень начинается, когда игрок набирает 5, 10, 15, 20... очков. Так что для перехода нам достаточно знать, что при делении набранных очков на 5 остаток должен быть равен нулю. На каждом новом уровне время до появления следующего танка уменьшается.
когда я получу Изменить счет изменить Подбито НО О если Подбито mod о а , ТО I изменить Уровень на О изменить Время между врагами на 0 1 если Уровень > Ц , ю I ждать Время между врагами секунд передать Запуск Врага2 если Уровень > Д , то I ждать Время между врагами секунд передать Запуск ВрагаЗ если Время между врагами = Д ил! ПОБЕДА! Осталось только красиво за- кончить игру — добавить пару крошечных скриптов, кото- рые выглядят практически одинаково. когда щелкнут по скрыть Игра готова! когда я получу Победа! перейти в верхний слой показать стоп все когда 1целкнут по ( крыть когда я получу Конец игры перейти в верхний слой I показать I До новых встреч со Скретч!