Текст
                    МОИ ПЕРВЫЕюли
ПРОГРАММЫ Ц
НА :
Программирование для детей

Привет! Не сомневаюсь, что ты любишь играть на компьютере, телефоне или планшете и смотреть ЗО-мультфильмы. Знаешь, как их делают? Для этого нужны программы - наборы команд, которые приказывают ком- пьютеру двигать героев по экрану. А теперь - самое главное. Ты можешь сам создавать такие программы! Для этого придумали специальные детские среды программирования. В них ко- манды нарисованы как цветные значки-блоки, из которых удобно собирать программы. Одна их таких специальных сред называется Скретч (Scratch). Программы, которые делают в Скретче дети, выглядят так: Слово «scratch» по-русски - «царапина», поэтому символом Скретч сразу стал кот. А ещё в английском языке есть выражение «from scratch», которое озна- чает «начинать с чистого листа» или «делать что-то с самого начала». Кота из Скретч русские дети сразу прозвали Царапкой.
1 ПЕРВАЯ ПРОГРАММА. УЧИМ . ГЕРОЕВ ХОДИТЬ И ПОВОРАЧИВАТЬСЯ Окно программы Ура! Мы установили Скретч, открыли редактор и можем приступать к делу. Вот наш главный инструмент - рабочий экран редактора Скретч. Сцена, или игровое поле. Здесь запускается программа. Сейчас ты видишь на этом поле Царапку - это спрайт. Он готов к работе и ждёт, когда ты дашь ему команду действовать. Область меню. В верхней части расположено меню проекта - команды со- хранения и загрузки фай- лов, изменения размера сцены, подсказки, а также «горячие значки», которые быстро изменяют свойства спрайта. С правого края меню находится ссылка для управления аккаунтом на сайте Скретч. Спрайты - это герои программы (объекты): люди, животные, фанта- стические существа или предметы. Все действия Область данных спрайта. Здесь можно создавать спрайты и менять их свойства. в программе происходят Область скриптов. Скрипт - программы, управляющие спрайтами, - цепочки бло- ков-кирпичиков. В области скриптов мы будем собирать программы из блоков-кирпичиков. Внизу лежит Рюкзак: в него удобно склады- вать скрипты, которые используются с не- со спрайтами. сколькими спрайтами.
ЭТО ИНТЕРЕСНО Английским словом sprite (спрайт) называют разных загадочных существ - фей, леших, домовых и русалок, а также световые вспышки, которые иногда появляются над грозовыми облаками очень высоко в небе. Несколько десятков лет назад, когда компьютерная графика только появилась, спрайтами стали называть графические объекты в программах - рисунки, фигуры, картинки. к__________________________________________________________________ Движение Внешность Звук Перо Данные | События | Управление | Сенсоры | Операторы | Новые блоки Все команды в Скретче выглядят как цветные блоки. Представь, что перед тобой 10 разноцветных ящиков. Из каждого ящика ты вынимаешь нужную команду-блок и перетаскиваешь в об- ласть скриптов. Блоки каждой группы обозначены своим цветом. Так их проще найти в программе. । ВАЖНО Позже ты заметишь, что не все блоки можно соединить, так что ты не сможешь сложить вместе несовместимые команды. СОЗДАЁМ ПЕРВУЮ ПРОГРАММУ ВОдин герой у нас уже есть - это кот Царапка. Перед тем как создавать програм- му, нужно придумать последовательность действий, которую будет выполнять Царапка, - алгоритм. В нашем случае он будет такой: При запуске программы повторять бесконечно: идти 30 шагов туда, куда направлен спрайт, если встретится край, оттолкнуться. Е1
Выбери любой из синих блоков и перетащи его вправо, в область скриптов. Если мы возьмём блок и СНИЗУ придвинем к нему блок т0 они склеятся. Получится так: могла щелкнут по Добавь блоки из групп «Управление» (оран- жевый) и «События» (коричневый) и щёлкни по зелёному флажку в правом верхнем углу сцены. Если всё сделано правильно, Царапка начнёт бегать! ВАЖНО Команды всегда будут выполняться в том порядке, в каком стоят блоки. ВАЖНО В белых окошках внутри блоков-команд находятся значения (числа или слова), которые опре- деляют особенности команды - скорость движения, расстояние, угол поворота. Они называ- ются параметрами. Команда «идти 10 шагов» и «идти 40 шагов» - это одна и та же команда, которую Царапка (и другие герои программы) могут исполнять с разными параметрами. СОХРАНЯЕМ СВОЮ ПРОГРАММУ Теперь нужно сохранить наш проект. В верхней части сцены есть поле с именем проекта. Пока мы не назвали проект, это поле выгля- дит вот так: w |unt,tled-8 L J на YuilyaT (личный) После этого в верхнем меню редактора Скретч выбери команду «Файл». Нажми «Сохранить сейчас». Теперь в спи- ске твоих проектов на сайте или в папке на компьютере появится проект с введен- ным тобой именем. «жжжжа [ScRhTcHl I Первые ш; L .J HaYi^aTj Файл ▼ Редактировать ▼ Подсказки About Новый Сохранить сейчас Сохранить как копию
ВАЖНО На компьютере проекты Скретч обычно сохраняются в папке Scratch Projects, которую Скретч создаёт при установке. В Windows эта папка находится внутри папки «Документы». БИБЛИОТЕКА СПРАЙТОВ Кот - это один из готовых спрайтов Скретч. Ты можешь взять готовый спрайт из библиотеки, нарисовать его сам, загрузить его из файла или с веб-камеры. СОВЕТ Библиотека спрайтов Наведи курсор мышки на любой зна- чок - появится всплывающая подсказка. Щёлкни на значке добавления спрайта из библиотеки. Сейчас нам понадобится папка «Живот- ные». Найди мышку (вид сверху) и дваж- ды щёлкни на её изображении. Если тебе нужно удалить ненужный спрайт, щёлкни на нём правой кнопкой мыши и нажми «Удалить», В области свойств спрайтов (справа вверху) найди небольшое меню из знач- Фаитвстигв Ппъ» "РЫКТм АПЮП ков - команд для получения спрайтов. •*! Новый объект город Полч’ И ГЯН11» Космос Спорт Подладим») Mlip глуми* Пг» Б«1ов«п» uptu tH-irop B/rakrtancL’T 1 т Алла & I Л- Вча№апссг2 СаН (ЭД
ПРИМЕР. ЦАРАПКА УЧИТСЯ ХОДИТЬ Дадим спрайту более сложное задание - обойти всю сцену с поворотами ВАЖНО Размер сцены Скретч - 400 шагов в ширину и 240 шагов в высоту. Запомни эти числа, они пригодятся, когда ты будешь рассчитывать движения героев по экрану. Царапка отправляется в путь из левого нижнего угла и делает 400 шагов вправо. Затем он должен повернуть вверх и пройти, например, 200 шагов. Затем Царапка по- ворачивает налево, снова идёт 400 шагов, поворачивает вниз и делает ещё 200 шагов. Он должен оказаться в том же месте, откуда начал свой путь. Создай такой код: I Чтобы настроить параметр блока «Повернуть», нажми чёрную стрелочку и выбери нужное значение из списка. (-90) влево (90) направо (0)вверх (180) вниз Контекстное меню поможет быстро вставить несколько одинаковых блоков. Вызвать это меню просто - достаточно нажать правую кнопку мыши, но его состав может меняться. В области скриптов наведи курсор на блок, кото- рый нужно размножить, и нажми правую кнопку мыши - появится короткое меню. Выбери пункт «Дублировать». На экране возникнет копия блока (и все прицепленные к нему снизу блоки). Перетащи их в нужное место.
Перетащи Царапку в левый нижний угол и запусти скрипт, щёлкнув по верхнему блоку. Ничего не происходит. Неужели программа не работает? Работает. Просто Царапка пробежал по экрану так быстро, что мы этого не заметили. Чтобы проследить, как он шагает по экрану, нужно дать Царапке команду ненадолго останавливать- ся, например при поворотах. Для этого перейдём в группу тёмно-жёлтых блоков - «Управление». Для того чтобы вставить его перед каким-нибудь из блоков, нужно потянуть этот блок вниз. Цепочка блоков разъединится. Щёлкни на первом блоке. Теперь Царапка на секунду замирает при повороте, и ты видишь, как он двигает- ся по экрану. Ненужные блоки можно удалить при помощи пра- вой кнопки мыши. Нажми её, и увидишь корот- кое меню, в котором есть пункт «Удалить». Щёлкни по нему, и блок исчезнет. Другой способ удалить блок - перетащить его обратно в группу блоков. Если случайно удалились нужные блоки, их можно вернуть на место с помощью меню «Редактировать».
ЧТО ТАКОЕ СИСТЕМА КООРДИНАТ А что делать, если нужно поставить спрайт в определённую точку сцены или подвинуть его на очень маленькое расстояние? Для этого в Скретче используются координаты - адрес точ- ки на сцене. Это как твой домашний адрес, только вместо номера дома и номера квартиры ис- пользуют буквы % (икс) и у (игрек). 9- 8- 7- 6- 5 — 4- з- 2- 1- *(3,5) (9,7) Координата «икс» располагается на горизонтальной чис- ловой прямой. Координата «игрек» - на вертикальной числовой прямой. Если провести две прямые линии через координаты «икс» (вертикальную) и «игрек» (горизонталь- ную), то они пересекутся в одной точке. Значения «икс» и «игрек» называют координатами этой точки и обычно записывают как пару чисел в скобках через запятую. 123456789 (0,0) — центр системы координат Сначала записывается значение по горизонтали, а только по- том - по вертикали. Переставлять эти числа нельзя! Получит- ся совсем другая точка - как в случае с точками (5,3) и (3,5). (X:0,Y:180) (X:-240,Y:0) »--- (X:O,Y:O) (X:240,Y:0) Центр сцены - это точка с координатами «0,0». Направ- ления вверх и вправо обо- значаются положительными числами, а вниз и влево - отрицательными, то есть чис- лами со знаком «-»(минус). (X:O,Y:-180) x: -212 y: iso Если подвигать мышкой по экрану, в правом нижнем углу сцены будут меняться значения букв хи у « ч X 6
Например, точки с координатами (15,63) и (100, 56) всегда будут находиться в правом верхнем квадрате, точки (-145, -12) и (-145, -170) - в левом нижнем, (220, -100) и (35, -18) - в правом нижнем, а точки (-17,152) и (-78,45) - в левом верхнем квадрате. ВАЖНО Общая ширина сцены в Скретче составляет 480 точек, то есть вправо от нуля 240 точек и влево тоже 240. Общая высота поля - 360 точек, то есть по 180 точек вверх и вниз от середины экрана - точки с координатами (0,0). Точное положение Царапки (его координаты) помогут узнать специальные блоки. Если поставить галочки, на сцене появятся два прямоугольни- ка с информацией о положении спрайта. Запусти скрипт с Царапкой, и в левом верхнем углу окажутся две надписи (их можно перетащить в другое место). Царапка: положение по оси х Царапка: положение по оси у -190 -12G ВАЖНО D Координаты спрайта на экране соответствуют середине прямоугольника, который можно описать вокруг спрайта. В зависимости от формы картинки эта точка может ока- заться в разных местах экрана. Помни об этом, задавая координаты для перемещения спрайта. БЛОКИ ИЗ ГРУППЫ «ДВИЖЕНИЕ» Блоки из группы «Движение» перемещают спрайт в место на сцене с координатами (х, $ Если нужно переместить спрайт по горизонтали, то меняется только число х. Если по верти кали - то только число у. “ в п _____________
Командует спрайту оттолкнуться и развернуться при столкновении. Заставляет спрайт двигаться медленно. Обычно ты не замечаешь, как спрайт оказывается в другом ме- сте, - компьютер работает очень быстро. Для того что- бы сделать движение видимым, и придумали этот блок. Переносит спрайт в место, где находится указатель мыши или другой спрайт, так что координаты указывать не нужно. Блок сам узнаёт, где находится курсор мыши, и сразу передаёт информацию спрайту. Тот немед- ленно прыгает в указанное место. Кажется, что спрайт «приклеился» к курсору мыши и передвигается вместе с ним. Этот блок пригодится и в играх, и в программах. е<лш ма краю, оттолкнуться I I ПРИМЕР. ПЛАВНЫЙ ПОЛЁТ ПРИВИДЕНИЯ Загрузи из библиотеки спрайт привидения. Создадим код, который заста- _/ОС} вит его плавно летать по сцене в случайно выбранную сторону. _________________________j ш
ПРИМЕР. СПРАЙТ И УКАЗАТЕЛЬ МЫШИ Существует специальный блок, привязывающий спрайт к указателю мыши. Загрузи из библиотеки спрайты кошки и мышки. Создай код, при помощи которого кошка будет гоняться ж ж « за мышкой, но так и не сможет её догнать. Скрипт для мышки заставит её перемещаться вместе с курсором. котя щелкну* по перейти указатель мышки Скрипт для кошки заставляет её преследовать мышку. Придумай игру, в которой кошка ловит мышку. ЧТО ТАКОЕ УГОЛ ПОВОРОТА? В группе «Движение» есть блоки, которые поворачивают спрайт на нужный угол. градусов г радус ош
Чтобы выбрать значение для угла поворота спрайта, посмо- три на этот круг. Цифра 0 соответствует направлению дви- жения спрайта; чтобы повернуть налево, нужно либо указать отрицательное значение (от 0 до -180) в первом блоке, либо использовать блок левых поворотов. Для поворота направо нужно ввести положительное число (от 0 до 180) в первом блоке или использовать соответствующий блок. КРУТОЙ ПОВОРОТ От верхней (нулевой) точки круга спрайт может поворачивать как направо - по часовой стрелке, так и налево - против ча- совой. В группе «Движение» есть команды поворота на любой угол - блоки, поворачивающие спрайт относительно направ- направление: 54" z ления его движения (это направление считается нулевым), «ч Перетащи в свой скрипт блоки поворота и измени значение угла. Царапка стал двигаться в разных направлениях. Обрати внимание, что в окошке свойств спрайта можно увидеть не относительное, а точное значение угла, на который поворачивается спрайт. Ты можешь сделать так, чтобы при изменении направления движения спрайта поворачивалось и само изображение. Или заставить спрайт смотреть на указатель мыши или другой спрайт, не задумываясь о значении угла поворота. Это очень удобно в играх, когда спрайты гоняются друг за другом. •1 Если спрайт убежал за пределы экрана, не пугайся. Чтобы вернуть его в центр сцены, используй блоки ращеняы влево* вл ра во ЭКСПЕРИМЕНТ Поэкспериментируй с блоками, управля- ющими движением Царапки. Вводи раз- ные значения, чтобы посмотреть, как кот перемещается по сцене.
ПРИМЕР. УЧИМ ЦАРАПКУ ХОДИТЬ ПО ПОТОЛКУ Для того чтобы научить Царапку ходить вниз головой, нужно настроить стиль поворота. Для это- го мы пойдём в область свойств спрайтов, которая расположена слева внизу редактора Скретч. Буква i в маленьком синем кружочке рядом с Царап- кой - это «ключ» к окошку изменения свойств спрайта. Новый объект (координаты) на экране и его реакция на команду «пово- рот». Именно здесь можно изменить свойства или уз- Если щёлкнуть по кружочку, на экране появится окошко с информацией о спрайте: имя спрайта, его положение [Царапка х: -9 у: 1 ^направление: 90“ — стиль вращения: О • можете перетащить в проигрыватель: Г* показать RF нать значения параметров. Обрати внимание на кружок С ЧёрТОЧКОЙ. овмм [Царапка х: >9 у: 11 Отправление: 90“ стиль вращения: О • можете перетащить в проигрыватель^ показать 57 СОВЕТ Называй спрайты так, чтобы не запутаться, особенно если спрай- тов больше 4-5. Скретч понимает русские буквы, так что имена могут быть не только английскими, но и русскими.
Если подвигать МЫШКОЙ СИНЮЮ чёрточку, она будет Вращаться, направление: 0= 1 а число слева от неё будет меняться. Если ты поставишь чёрточку вертикально и щёлкнешь на блоке скриптов), Царапка пойдёт вверх! (в области ВРАЩЕНИЕ СПРАЙТА В свойствах спрайта есть загадочная строчка. Оттого, какие параметры ты в ней выберешь, зависит, как картинка спрайта будет вести себя при поворотах. стиль вращения: О Если ты нажмёшь кружок со стрелкой, картинка спрайта будет сама поворачиваться в соответствии - -«*' с направлением движения. Запусти скрипт кругового обхода поля и увидишь, что Царапка не только пере- мещается по кругу, но и поворачивается, как будто идёт по стенам и потолку. — — — — Двусторонняя стрелка заставляет Царапку поворачи- ваться в нужную сторону при движении вправо и влево. (При движении вверх и вниз ничего не происходит.) Точка просто запрещает поворот картинки при лю- бых движениях спрайта. Изменить стиль вращения спрайта можно прямо в программе. Для этого достаточно добавить в про- грамму специальный блок. В группе «Движение» есть ещё один популярный блок, который позволяет узнать направление дви- жения спрайта. Поставь галочку в квадратике слева от блока, и на сцене появится надпись: — — — 1ь вращеммя влево вправо
БЛОКИ ИЗ ГРУППЫ «СОБЫТИЯ» Любой скрипт можно запустить, щёлкнув на его первом блоке, но такой запуск доступен только тебе, автору программы. Если твой проект захотят посмотреть другие, они должны будут нажать специальную кнопку для запуска игры или программы. В правом верхнему углу сцены расположены значки ф - это кнопки запуска и остановки программы. Если ты нажимаешь кнопку на клавиатуре, двигаешь мышку или на экране сталкиваются два спрайта - происходит событие, а как на него реагировать, решают блоки из группы «События». Напри- мер, когда ты нажимаешь зелёный флажок, Скретч получает со- общение о щелчке мышью в определённой области экрана и за- пускает программу. ж ж ж ж ж Перетащи блок с флажком в область скриптов и поставь его пе- ред всеми остальными блоками. Теперь зелёный флажок в верхнем правом углу сцены заставит Царапку пробежать круг по полю. Посмотри, какие ещё блоки есть в группе «События». Попробуй заменить Нажми «пробел» на клавиатуре. Царапка начнёт бегать по кругу. Теперь замени этот блок на Щёлкни мышью по Царапке, и он снова начнёт двигаться по кругу. Блоки из группы «События» могут запускаться не только действиями пользователя, но и событиями внутри программы. Например, блок даёт команду выполнить какие-либо действия *ог&» пнитш backdrop 1 при смене фона. Так ты сможешь управлять уровнями в игре. Новый уровень - новый фон и новые действия.
Давай попробуем использовать блоки управления событиями. Загрузи спрайт мыши из библиотеки и создай вот такой код (воспользуйся командой «Дублировать»): Теперь мышь будет менять направление движения, когда ты нажимаешь стрелочки на клавиатуре. Поэкспериментируй с разными клавишами и командами. ЭКСПЕРИМЕНТ Помнишь, как двигаются герои твоих любимых компьютерных игр? Стрелки обычно ме- няют направление движения, а пробел помогает перепрыгнуть препятствие. При нажатии пробела персонаж должен подняться вверх, передвинуться вперёд и опуститься. Вставь паузу между командами или используй блок «Плыть», чтобы движения были заметны.
ЭКСПЕРИМЕНТ а ждать О сему мд помермуть ид тм СТТЭ повернуть в направлении БЛОКИ ИЗ ГРУППЫ «УПРАВЛЕНИЕ» Наш Царапка обходит сцену только один раз. Хочешь сде- лать так, чтобы он ходил по кругу, пока не получит коман- ду остановиться? Щёлкни мышкой на четвёртом блоке скрипта и потяни его вниз. Скрипт разделится на две части. В группе блоков «Управление» найди блок «всегда». Перетащи его поближе к скрипту, так, чтобы он совпал с левым верхним углом нижней части скрипта. Появится белая рамка, и блок автомати- чески растянется до нужного размера. • — — «1 Теперь прицепи обратно верхние блоки. когда щелкнут по нап равле ним ждать О секунд повернуть в направленна Этот скрипт выполняет следующие действия: Переместить Царапку в заданную точку. Заставить Царапку бегать по кругу бесконечно («всегда»). Для этого Царапка должен: Повернуть направо. Сделать 400 шагов. Подождать 1 секунду. И повторять эти действия, пока пользователь не остановит программу. Остановить программу можно в любой момент, для этого достаточно нажать красный многоуголь- ник в правом верхнем углу сцены. Но ты можешь придумать и запрограммировать свой способ. Изучи другие блоки управления. Поставь вместо блока «всегда» блок и посмотри, что изменилось.
5. ТРА-ЛЯ-ЛЯ-ЛЯ... ДИРИЖИРУЕМ ОРКЕСТРОМ БЛОКИ ИЗ ГРУППЫ «ЗВУК» | Движение | Внешность Звук Для работы со звуками в Скретче есть специальная груп- па команд «Звук» и вкладка для редактирования и создания звуковых файлов. Перетащи в скрипт «Первые шаги Царапки» блок Если его поставить после каждой паузы, то Царапка начнёт мяукать на каждой остановке. В библиотеке Скретча хранится множество звуков, которые ты можешь использовать в своих проектах. ягрлть лук meow | Перо | Данные | События | Управление | Сенсоры | Операторы | Новые блоки ДОБАВЛЕНИЕ ЗВУКОВ ИЗ БИБЛИОТЕКИ Перейди на вкладку «Звуки» в области скриптов. “ П Скрипты Костюмы Звуки Такты попадёшь в область редактирования, загрузки и записи звуков - редактор звука. • Uonphurir robin wi 1 - Q
Нажми левый значок в меню новых звуков. Откроется библиотека готовых зву- ков Скретча. Если дважды щёлкнуть на любом из звуков, библиотека закроет- ся, а значок с названием звука появится слева, в окне звукового редактора. Теперь вернись в свой скрипт. Если ты нажмёшь чёрную стрелку в блоке «Играть звук», откроется меню, в котором находятся все звуки, выбранные для этого проекта в звуковом редакторе. Для того чтобы услышать звук, необязательно за- гружать его в проект, просто щёлкни на нём один раз. Два щелчка добавят любой звук в проект. Библиотека звуков Вс* Животное зпмтрсимы Муашищмаи iwiiiu rxwua* _______________ РЕДАКТИРОВАНИЕ ЗВУКОВ играть звук meow повернуть meow идти и запись 1 ждать Ос afro string Чёрная затейливая фигура в звуковом редакторе - это осциллограмма (изменение звука во време- ни). Обрати внимание на расположенные под ней кнопки ► • - это проигрывание, останов- ка и запись звука. Меню «Редактировать» и «Эффекты» позволяют изменить любой звук - вырезать его фрагмент, вставить другой звук, сделать звук громче или тише и многое другое. Это удобно делать на осциллограмме. Для того чтобы выделить нуж- ный фрагмент звука, в который ты хочешь внести изменения, щёлкни мышью на начале фрагмента и, не отпуская кнопку, тащи указатель до нужной точки. Отпусти кнопку, и нужный фрагмент окрасится в си- реневый цвет. Теперь к этому звуковому кусочку можно применять лю- Редактировать отмена повтор вырезать копировать вставить удалить выбрать все Эффекты ▼ увеличивать исчезать громче мягче тишина вернуться бые команды и эффекты из меню редактирования. Если сейчас щёлкнуть кнопку проигрывания звука, то ты услышишь только выделенный фрагмент. Чтобы прослушать весь звук целиком, сними выделение, щёлкнув мышью в любом месте.
ВАЖНО Громкость звука зависит от настроек твоего компьютера. Но ты можешь сделать одни звуки громче или тише других, это пригодится тебе в играх. ЗАПИСЬ ЗВУКОВ Очень интересная и полезная функция Скретч - запись собственных звуков прямо в программе. Ты можешь записать диалоги героев игр или собственное музыкальное сопровождение, для этого тебе понадобятся только Скретч и микрофон. СОВЕТ Большинство современных ноутбуков оснащены встроенными микрофона- ми. Если ты пользуешься настольным компьютером, то, скорее всего, тебе понадобится отдельный микрофон, он пригодится и для ноутбука, ведь звук записывать проще, держа в руке микрофон. Запись можно начать, щёлкнув на треугольнике в меню > • Кнопка становится красной - значит, запись началась, можно говорить или петь в микрофон. Остановить запись просто, достаточно нажать квадратную кнопку «Стоп». Для записи звуков есть отдельный экран, он откроется, если ты нажмёшь новыизвук: маленький микрофон в меню «Новый звук» — — — — — — Новый звук по умолчанию называется soundl, 2,3 и т. д. Для того чтобы не запутаться, дай своему звуку понят- ное название в окошке над графиком. Правее названия звука находятся кнопки, которые по- зволяют отменить или вернуть последнее действие в звуковом редакторе. [ Мой новый звук *9 (•
ВАЖНО Как только ты нажмёшь кнопку «Стоп», запись останавливается, но редактор продолжа- ет работу с текущим звуковым файлом. Если снова нажать кнопку «Запись», то звук про- должит записываться в тот же файл. Для записи новой фразы или звука тебе придётся снова нажать микрофон в меню «Новый звук». Записанные звуки сразу появляются в текущем проекте Скретч. Но если ты собираешься использовать свои записи в разных проектах или просто оставить на память, необходи- мо сохранить их в виде отдельных звуковых файлов. Для этого щёлкни правой кнопкой мыши в списке звуков на нужной записи. Откроется контекстное меню, в котором нужно выбрать пункт «сохранить локальный файл». Откроется стандартное окно сохране- ния файлов, где ты можешь выбрать место и указать имя файла. Если ты захочешь использовать этот файл в другом проекте, просто открой его при помощи значка папки в меню «Новый звук». » — Новый звук: •1т <1 [jj] ГРОМКОСТЬ Громкость звука в Скретче меняется так же, как и в музыкальных плеерах. В играх часто используют один и тот же звук, но меняют его громкость. Рёв приближающейся гоночной машины или гул самолёта становятся громче, когда они приближаются к игроку. • ч Громкость можно измерять внутри скрипта, для этого используется встроенная переменная «уровень». ________________ Ритм музыки определяется темпом - скоростью проигрывания нот. Для изменения темпа в Скретче есть специальные блоки и переменная, позволяющая измерить темп музыки: « CS 20
3 ГРАФИЧЕСКИЙ РЕДАКТОР . СКРЕТЧ И НОВЫЕ СПРАЙТЫ КАКИМИ БЫВАЮТ ГРАФИЧЕСКИЕ РЕДАКТОРЫ Спрайт можно нарисовать самим или взять за основу го- товое изображение или фотографию. Если ты хочешь создать собственную игру, то тебе понадобятся: 1. Главный герой, один или несколько. 2. Препятствия, которые он должен преодолевать. 3. Фон для игры. 4. Кнопки для начала и окончания игры, поле для выво- да результатов, значки для подсчёта ресурсов и многое Другое. ВАЖНО 11Ш111ШШ1ШШШХ Все объекты, которые в твоей игре или программе будут меняться или двигать- ся независимо от фона, должны быть отдельными спрайтами. Нарисовать спрайт можно прямо в графическом редакторе Скретч, а можно воспользоваться графи- ческим редактором, установленным на твоём компьютере. Ты можешь работать в любом редакторе, какой тебе покажется удоб- ным. Главное - сохранять изображения в форматах, которые понимает Скретч. Это форматы JPG, BMP, PNG, GIF (включая анимированный GIF). Для фона потребуются рисунки и фотографии размером 480 на 360 пикселей, иначе они не поместятся на сцене.
Растровая графика Растровые графические редакторы собирают изображе- ние из множества разноцветных точечек-пикселов, как из мозаики. В растровых редакторах удобно создавать сложные цветовые эффекты - переходы цветов, отраже- ния предметов, размытия. Векторная графика Векторные графические редакторы складывают изобра- жение из фигур - разнообразных геометрических объ- ектов, форму которых можно описать каким-то матема- тическим выражением. Векторные редакторы позволяют создавать изображения со множеством объектов, имею- щих чёткую форму. Хочешь нарисовать город - исполь- зуй множество зданий разной формы, передвигай объек- ты с места на место, пока не получится нужная картинка. Для того чтобы открыть графический файл, созданный в дру- <5 / гой программе, нажми значок папки в правом верхнем углу области спрайтов. Выбери нужный файл, и изображение появится в области спрайтов. m ж wb aw мм мм «в w w мм ж
РИСУЕМ В СКРЕТЧЕ СОЗДАНИЕ НОВОГО СПРАЙТА В РЕДАКТОРЕ СКРЕТЧ Чтобы перейти в графический редактор Скретч, нажми значок кисточки в правом верхнем углу области спрайтов. Откроется окно редактора.^ Рисует кривую линию. Рисует прямую линию. Рисует прямоугольник, а с нажа- той клавишей Shift - квадрат. Рисует овал, а с нажатой 4 клавишей Shift - круг. Лупа изменяет масштаб рисун- ка, с её помо- щью удобнее рисовать мелкие — - т----- Палитра для выбора цвета. Кажется, что здесь уже много цветов, но на самом деле их ещё больше. Позволяет написать текст 4“ в любом месте экрана. Окрашивает изображение 4^ в выбранный цвет, но контур изображения и его внутрен- нюю часть нужно раскраши- вать отдельно. Стирает изображение. Позволяет выделить и подвинуть фрагмент изображения. 4------- Дублирует фрагмент изображения. 4 Выдели нужный фрагмент и нажми кнопку с штампом - появится копия, которую можно перенести в любое место. Когда ты выделишь нужную область рисун- ка, её можно будет удалить (кнопкой Del), пе- редвинуть (стрелочками на клавиатуре или мышью) или повернуть за точку, расположен- ную сверху выделенного участка. Сейчас редактор работает в растровом режиме. Слева расположена область инструментов. Одним щелчком мыши ты можешь выбрать нужный инструмент.
Если ты нажмёшь на разноцветный квадратик, откроется другая палитра - в виде цветового спектра. Здесь можно найти самые разные тона и оттенки. ~ ~ ~ Левее палитры находится бегунок, позволяющий изменить тол- щину линии. Если ты рисуешь овал или прямоугольник, бегунок превращается в кнопки для настройки закраски фигур. Объект можно закрасить одним цветом, а можно использовать цветовые переходы (градиент). Очистить Импорт В верхней части экрана расположены кнопки «Очистить» и «Импорт». Первая кнопка позволяет быстро убрать всё изо- бражение, а вторая загружает файл с картинкой в графический редактор, чтобы её можно было изменить. СОЗДАНИЕ КОСТЮМОВ В Скретче удобно создавать как сами спрай- ты, так и костюмы для них. Костюм - это внешняя оболочка объекта программы. При создании спрайта автоматически создаётся один костюм, но ты можешь дорисовать мно- жество других. Если нажать кисточку в столбце с костюма- ми (левая часть редактора), создаётся пу- стой костюм, в котором можно нарисовать любой рисунок. • « « J При анимации персонажей проще всего создавать костюмы на основе первого. Щёлкни пра- вой кнопкой мыши на исходном костюме и выбери пункт меню «Дублировать».
ПРИМЕР. ТАНЦУЮЩИЙ ЗАЯЦ Давай создадим спрайт с костюмами и напишем программу для его анимации. Нарисуй в растровом режиме зайца, для этого тебе приго- дятся овалы, круги и заливка серым цветом. Создай новые костюмы на основе уже имеющегося, для это- го хорошо подойдёт дублирование. Пускай на этих изобра- жениях одно или оба уха зайца будут опущены. Несложная программа заставит нашего зайца прыгать вверх-вниз и шевелить ушами под барабанную дробь. I СОХРАНЕНИЕ НОВОГО СПРАЙТА В ОТДЕЛЬНЫЙ ФАЙЛ Если ты хочешь использовать собственные спрайты в раз- ных проектах, их нужно сохранить как отдельные файлы. Щёлкни в редакторе (левый столбец) правой кнопкой мыши на костюме и выбери пункт меню «Сохранить локальный файл». Укажи папку, где будут храниться твои спрайты, и введи нужное имя файла. Нажми «Сохранить». Храни все файлы одного проекта в одной папке! Нт «лсда КЛ1ЛИИ1 пробел нажата сменить костюм на костюм4 дублировать удалить сохранить локальный файл ВАЖНО Для каждого костюма необходим отдельный файл! Вы- бери для спрайта имя и дополни его цифрой или буквой, например: Заяц-а, Заяц-b или Заяц1, Заяц2 и так далее.
ВЕКТОРНЫЙ РЕДАКТОР Векторный редактор Скретч хорошо подходит для создания сложных объектов. Создадим новый спрайт и назовём его «Морковка». Если ты перейдёшь в графический редактор и нажмёшь кнопку «Конвертировать в векторный режим» в правом нижнем углу экрана, вид экрана изменится. Инструменты редактирования изображений поменяются и переместятся вправо. Нарисуй овал при помощи инструмента круга. Залей его оранжевой краской. Не забудь залить оранжевым цветом и сам контур. Найди на панели инструментов значок и нажми его. На овале появилось несколько кружочков. Это опорные точ- ки, потянув за которые можно изме- нить форму фигуры. Попробуй, щёлкая мышкой по точкам и двигая их в разные стороны, придать изображению форму морковки. Кнопки инструментов - текст, рисова- ние фигур, заливки и печать - работают так же, как и в растровом режиме, только изображения легко можно изменять. Если тебе нужно работать с мелкими деталями, воспользуйся лупой. ж Л Используй карандаш, чтобы подри- совать морковке ботву. Обрати внимание, что края вектор- ного и растрового изображений выглядят по-разному: у векторного они ровные и гладкие. Q. = 800% СОВЕТ Если ты щёлкнешь не на опорной точке, а на кон- туре, в этом месте появится новая опорная точка. Чем больше опорных точек, тем точнее ты мо- жешь настроить форму фигуры.
Векторный режим хорошо подходит для создания костюмов. Чтобы опу- стить ухо зайца, достаточно повернуть нужный овал. Ничего стирать и рисо- вать заново не потребуется. Если ты нарисуешь изображение в векторном режиме и нажмёшь кноп- ку «конвертировать в растровый режим», то картинка навсегда переста- нет быть векторной - операции с опорными точками будут недоступны. СЛОИ ИЗОБРАЖЕНИЯ ft В векторном режиме появились новые кнопки, управляющие порядком наложения фигур =4. Друг на друга. Они позволяют управлять расположением частей рисунка. Представь, что рисунок состо- ит из слоёв, как луковица. Одна фигура находится наверху, и её видно полностью. Другая может находиться ниже, и её будет видно только частично. Посмотри на эти квадратные рамки. Они могут быть расположены так... или так. _ — Чтобы изменить положение конкретно- го слоя, нужно выделить его и нажать кнопку со стрелкой вверх или вниз. ГРУППИРОВКА ФИГУР Можно объединить несколько объектов в один, чтобы их вместе двигать, раскрашивать и произ- водить другие операции. Выдели нужные объекты (удерживая кнопку Shift). Появится кнопка Я, которая позволяет объ- единять или группировать элементы изображения, и нажми эту кнопку. Теперь редактор будет воспринимать группу как один объект, а кнопка поменяет вид на • , позволяя разгруппировать изображения. Нажмём её, и фигуры снова будут восприниматься редактором по отдельности.
Ч БЛОКИ «ВНЕШНОСТЬ» . И КОРОТКИЕ МУЛЬТФИЛЬМЫ Для мультфильма или забавной игры необязательно создавать программу со множеством спрайтов и сложным управлением. Группа блоков «Внешность» поможет изменить внешний вид спрайтов, добавить интересные эффекты и озвучить героев. С такими блоками легко ани- мировать персонажей игр. Можно поменять цвет спрайта и применить этот скрипт к нашей морковке. Цвет определяется значением, указанным в этой команде. Команда получает число и находит соот- ветствующий ему цвет. Если исходный цвет чёрный или серый, будут перебираться оттенки серого. I когда 1лаяжжа пробел нажата J изменить завихрение эффект на К спрайту можно применять и другие специ- альные эффекты, меняющие его вид. Например, «Мозаика» размножает спрайт, но клоны-копии при этом не создаются. А «Завихрение» скручивает изображение в спираль. АНИМАЦИЯ В мультфильмах персонажи движутся, потому что изображения с небольшими изменениями бы- стро сменяют друг друга. Это возможно с помощью костюмов спрайтов. Они видоизменяют спрайт, оставляя его поведе- ние неизменным. В библиотеке спрайтов можно найти не только спрайты, но и готовые костюмы. Загрузи из библиотеки спрайт голубя.
Давай заставим голубя летать. Создай вот такой код. Если ты его запустишь, голубь начнёт махать На вкладке «Костюмы» ты увидишь дополнительный костюм - крылья го- крыльями, но останется на месте. • “ Добавь в программу блоки перемещения, чтобы голубь двигался по сцене. Попробуй поменять время ожидания между сменой костюмов. ДИАЛОГИ Хочешь, чтобы спрайты разговаривали по твоей команде? Нарисуй или загрузи из библиотеки нужные спрайты, например мальчика и девочку. Для каждого спрайта понадобится отдельный скрипт. При щелчке на зелёном флажке спрайты начнут диалог.
^Сонечно^^к^се^чен^епс^ИТ^й^ё^^л^^ в течение секунд Дорожка, на которой стоят герои, - это линии, нарисо- ванные на фоне. Согласись, так картинка становится реа- листичнее и оживает. БЛОКИ «ВНЕШНОСТЬ» ДЛЯ СПРАЙТОВ 5. Конечно, там всё очень легко! Пойдем гулять? Рассмотрим подробнее, какие блоки есть в группе «Внешность» и как они работают. Показывает текст в «пузыре» (как в комиксах). Что на- писать, решаешь ты сам. «Пузырь» с текстом исчезнет, когда истечёт время, указанное в параметре команды. Этот «пузырь» с текстом будет на экране всё время, пока программа работает. Этот блок показывает «облачко» с мыслями. Облачко остаётся на сцене всё время, пока программа работает. ———————— «Облачко» с мыслями будет оставаться на сцене то время, кото- рое указано в параметре команды. Делает видимым спрайт, к которому относится. — — — — — — — — Делает невидимым спрайт, к которому относится. ——————— Меняет костюм на указанный в параме- тре. В меню, которое открывается при нажатии стрелки, находятся все суще- ствующие костюмы. • — — — —
Меняет костюм на следующий. Порядок следования костюмов такой же, как в графическом редакторе. Номер костюма в очереди может не со- впадать с цифрой в его названии. Обрати внимание, что после «костюм!» блок включит «костюмЗ», а не «костюм2». Меняет текущий фон на другой, указанный в параметре. Ты можешь выбрать любую из существующих фоновых картинок, нажав стрелку. Этот блок может стоять в скрипте любого спрайта, но будет действо- вать на всю сцену. Этот блок включает цвет спрайта в соответствии г с указанным номером. — — — — — — J В этом блоке два параметра: вид изменения и степень измене- ния. Ты можешь изменить цвет или форму спрайта. • ВАЖНО В Скретче можно выбрать любой из 200 цветов. Они пронумерованы по порядку от 1 до 200 и меняются в соответствии с цветами радуги, начиная с красного. Ты можешь указать шаг изменения цвета, тогда цвет спрайта будет изменяться с указанным шагом. Обрати внимание, что меняется только цвет заливки, цвет контура остаётся прежним. Меняет силу выбранного эффекта. Для «Завихрения» ф чем больше число, тем сильнее будет закручиваться картинка, Избавляет спрайт от всех эффектов, которые были к нему применены, eeeeeeeeeee HMKiwnu мвихреиив эффект на
Поднимает спрайт в верхний слой сцены так же, как это делается в графическом редакторе. —————————— Опускает спрайт вниз на один слой. Такты можешь прятать спрайты друг под другом, то есть управлять их видимостью. Изменяет размер спрайта. Возвращает размер спрайта к исходному значению. “ “ Эти переменные всегда существуют в Скретче. Если поставить галочки, значе- ния станут видны на сцене. Переменные можно использовать в других блоках. Мы будем использовать их, когда начнём создавать свои программы и игры. Например, «Имя фона» позволяет выполнять какие-либо действия в програм- ме при появлении определённого фона. “ в БЛОКИ «ВНЕШНОСТЬ» ДЛЯ СЦЕНЫ Если щёлкнуть по сцене и затем перейти в группу блоков «Внешность», то набор блоков изменится: Отображает номер фона, г ^3^ Включает следующий по порядку фон. Включает указанный фон и приоста- навливает работу программы до даль- сменить фон на фон 1 и ждатъ нейших действий пользователя. Управление при этом пе- редаётся скрипту событий •ехида фом меняется на фон 1 Все перечисленные блоки относятся к сцене, то есть их можно использовать только в отдельном скрипте для сцены.
S ПОЧЕМУ МЫ ЛЮБИМ ИГРЫ . И КАК ПРИДУМЫВАЕМ ИХ О ЧЁМ БУДЕТ НАША ИСТОРИЯ? Прежде чем создавать игру в Скретче, стоит придумать для неё историю. В мультфильмах всегда есть герои. Они могут, например, искать потерявшихся друзей, спасать кого-нибудь во время наводнений или землетрясений, иссле- довать неизведанные земли, сражаться с чудовищами или хулиганами. Всё это может стать сюжетом - историей, которая происходит с героями. У каждого персонажа свой характер, и от него зависит, как будет разговаривать, двигать- ся и поступать герой. В играх всё так же. Но вот важное отличие игры от мультфильма: в игре мы не только наблюдаем за развитием сюжета, но и сами что-то делаем. СОВЕТ Вспомни сюжеты игр и мультфильмов, которые тебе нравятся больше всего. Какие в них главные герои? Что с ними происхо- дит? Какие трудности им приходится преодолевать? Какие чув- ства испытывают при этом герои?
КАКИЕ ИГРЫ МЫ ЛЮБИМ гонки Все любят догонялки. Участвовать в таких играх могут машины, катера, мотоциклы, вертолёты, самолёты, животные. Постоянное напряжение заставляет игроков чувствовать себя сильными и быстрыми. ПЛАТФОРМЕРЫ Это преодоление препятствий, сражения и драки. Игрок должен быстро действовать, чтобы перепрыгнуть ров с во- дой, взобраться на гору, ускользнуть от опасности, ударить противника. Требуются внимание и хорошая реакция. Такие игры позволяют нам почувствовать себя ловкими, смелыми и способными преодолеть любые трудности. ГОЛОВОЛОМКИ Игрокам нужно решать трудные задачи, быть очень вни- мательными и иногда быстро реагировать. Даже самые простые головоломки - «Тетрис» или «Сапёр» - достав- ляют радость, ведь твой ум работает быстро и мгновенно решает трудные задачи. Например, «Тетрис» легко можно сделать в Скретче. КВЕСТЫ Квесты - это игры, в которых приходится искать сокрови- ща, спрятанные предметы или выход из закрытых поме- щений. Чтобы решать трудные логические задачи, пона- добятся фантазия и логика, иначе ты не догадаешься, что имел в виду автор игры и где спрятан нужный предмет.
СТРАТЕГИИ Стратегии - это игры, в которых ты обустраи- ваешь собственные города и планеты, изуча- ешь новые миры, ведёшь войны. Добиваясь успеха в придуманном мире, игрок чувствует себя умным, решительным и дальновидным. КАК ПРЕВРАТИТЬ ИДЕЮ В ИГРУ Для того чтобы создать интересную игру или мультфильм, нужен сюжет - история, которая происходит с персонажами. Но идеи и истории недостаточно для того, чтобы сделать игру. Тебе придётся ответить на вопросы: * Какие эмоции игрок должен испытывать во время игры? * Игроку нужно быть быстрым? Смелым? Умным? * Чему игрок сможет научиться? * Что герои игры будут делать - бегать, обмениваться ресурсами, решать загадки? * Как оценивать прогресс игрока (совершенствование его качеств)? За успехи игрок должен получать очки, звёздочки или ресурсы. * Как будут меняться задания или уровни, чтобы игрок мог выполнять всё более трудные задачи? * Игровой мир. Он может быть привычным - город, квартира, лес, поле... Или непривыч- ным - загадочные круги, воронки, абстрактные железные конструкции или жидкости. ВАЖНО Никто не играет в игры, чтобы проигрывать, поэтому игра не должна быть слишком сложной. Ты создаёшь игры не для того чтобы почувствовать себя умнее игроков. Успех твоего труда за- висит от того, полюбят твою игру или нет.
БЛОКИ УПРАВЛЕНИЯ 1/1 ИГРА «НАКОРМИ ЗАЙЦА» Жёлтую группу блоков «Управление» мы уже не раз видели. Рассмотрим подробнее, что делают эти блоки и как их правильно использовать. Это очень важная информация, потому что от блоков управления - логики - зависит вся программа. Если твой проект работает не так, как задумано, первым делом нужно проверить работу блоков управления. ПАУЗЫ В играх и программах часто приходится приостановить действие на одну-две секунды, чтобы игрок мог подумать или разглядеть что-либо. Или программа должна подождать действий игрока или выполнения какого-то условия. Для пауз нам пригодятся следующие блоки: Приостанавливает выполнение программы на время, кото- рое указано в окошке параметра «Время». Приостанавливает выполнение программы, пока не будет выполнено какое-либо условие. Только после этого про- грамма продолжает работу. Этот код при запуске перемещает Ца- рапку на 10 шагов вправо. Кот останав- ливается. Он ждёт, пока мы не нажмём клавишу «пробел», а потом делает ещё 10 шагов. Где можно использовать такой блок? Например, в игре-квесте, где игрок может открыть дверь, толь- ко если вставит в замочную скважину нужный ключ.
циклы Ожидание выполнения условия - удобный приём, но он подходит не для всех ситуаций. В программировании существует несколько стандартных способов, позволяющих в зависи- мости от условия выбирать или повторять нужные действия. Такие команды называют условными операторами. Они позволяют менять ход выполнения программы в зависимости от выполнения условий. БЛОК «ПОВТОРЯТЬ ВСЕГДА» Повторяет действия внутри блока бесконечное число раз. Этот блок можно ис- пользовать для основного кода программы - совершения действий, которые должны происходить в программе постоянно (как падение морковок с неба). Этот скрипт заставит Царапку бесконечно подпры- гивать, пока пользователь программы не нажмёт на красный знак остановки • . Обрати внимание, что внизу этого блока нет высту- па. Так что ты не сможешь ничего подцепить снизу к этому блоку. Программа будет всегда выполнять этот блок и не сможет из него выйти или перей- ти к последующим блокам. Но изнутри этого блока можно передать управление другому скрипту. « ВАЖНО Помни, что не все действия стоит размещать внутри этого блока! Например, значение переменной обычно задаётся только один раз. Поэтому ставь эту команду перед блоком «всегда». Если она окажется внутри, то при выполнении команд этого блока этой переменной снова и снова будет присваиваться одно и то же значение, а программа будет работать медленнее.
БЛОК «ПОВТОРИТЬ ОПРЕДЕЛЁННОЕ ЧИСЛО РАЗ» Этот блок повторяет команды не бесконечно, а столько раз, сколько указано в окошке параметра. Затем программа переходит к следующим блокам. “ Так что ты легко можешь заставить Царапку подпрыгнуть 10 раз подряд. — «| БЛОК «ВЫПОЛНИТЬ ПРИ УСЛОВИИ» Этот блок совершает действие только при выполнении определённого условия. Царапка будет ходить из стороны в сторону, а если он касается края сцены, то раздаётся удар в барабан, кот разворачивается и идёт в другую сторону. Если кот прошёл 10 шагов и не коснулся стены, то про- грамма пропускает всё, что расположено внутри бло- ка «если... то», и Царапка начинает следующие десять
Давай заставим Царапку при встрече с собакой разворачиваться и убегать. (Спрайт собаки можно найти в библиотеке.) Царапка двигается быстрее собаки - делает «за один ход» 20 шагов, а не 10, и поэтому может убежать. Скрипт для спрайта собаки: БЛОК «ВЫПОЛНИТЬ ПРИ УСЛОВИИ... ИНАЧЕ ВЫПОЛНИТЬ...» Этот блок, как развилка на дороге, открывает два пути. Куда идти даль- ше? Всё зависит от условия. Если оно выполняется, то нужно выполнить одни действия. Если нет - другие, « « » в ж ж ж ж тивном случае. • «ч Скрипт, который застав- ляет Царапку повернуть на 90 градусов, если спрайт достиг края сце- ны, и подпрыгнуть в про- ED
БЛОК «ПОВТОРЯТЬ, ПОКА НЕ ВЫПОЛНИТСЯ УСЛОВИЕ» Этот блок будет повторять указанные действия, пока не будет выполнено определенное условие. После этого действия внутри данного блока прекращаются. Этот блок отличается от трёх предыдущих тем, что действия внутри него будут повторяться до тех пор, пока не будет выполнено условие. БЛОК «СТОП» Этот блок сразу останавливает действие скрипта. Программа застывает на месте, все переменные сохраняют значения, которые у них были на момент остановки. — -90 когда щелкнут по повернуть КЛОНИРОВАНИЕ Этот блок создаёт клон (дубликат) своего спрайта или дру- гого объекта. Клон появляется в той же точке, где находится его прародитель. ВАЖНО Клоны существуют, только пока запущен скрипт, в котором они были созданы! Это не копии спрайтов, им нельзя давать имена, но можно менять свойства и задавать собственные действия. Все эти изменения будут действовать, только пока работает программа.
Этот блок определяет действия созданных клонов. Этот блок удаляет клон. По команде скрипта Царапка сделает десять шагов, клонирует себя самого, после чего продолжит движение. Его клон продолжит двигаться, с каж- дым шагом поворачиваясь на 15 граду- сов в направлении по часовой стрелке. I
СЧЕТ В ИГРЕ В играх нужно вести счёт, и в этом нам помогут переменные. Что такое переменная? Это символ или слово, которые могут заменить какое-нибудь число, фразу или название файла. Значение переменной может меняться, а название остаётся неизменным. Давай поиграем в кошки-мышки. Создай скрипты для кошки и для мышки. градусов 100 Запусти игру. Теперь при каждом запуске мышка появляется в случай- ном месте, а кошка начинает её искать, крутясь в разных направлени- ях. Когда спрайты соприкасаются, раздаётся мяуканье, а счёт в игре увеличивается на 1. ВАЖНО Название переменной уникально, оно принадлежит только ей одной.
ПРИМЕР. НАКОРМИ ЗАЙЦА ОПИСАНИЕ Зайцы очень любят морковку, так что давай накормим зайца, а когда он наестся, то будет плясать от удовольствия! Определять сытость зайца будем при помощи переменной, под- считывающей, сколько раз заяц укусил морковку. Создай несколько костюмов для морковки, показывающих, как её кусает заяц. В векторном режиме это можно сделать, меняя форму морковки при помощи опорных точек, а в растровом - ластиком. Нарисуй несколько костюмов для векторного зайца. Заяц и морковка появляются на экране в случайных местах. Игрок должен подвинуть зайца к морковке, управляя клавишами со стрелками. Добравшись до морковки, заяц откусывает от неё по кусочку и увеличивается в размере - растёт. Съеденная морковка исчезает и появляется в другом случайном месте. Информация о том, сколько раз заяц укусил морковку, выводится на экран. Когда игрок решает, что заяц наелся, он может нажать клавишу «пробел», заяц говорит: «Наелся!», и начинает танцевать, двигая ушами под барабанную дробь. Для того чтобы остановить зайца, надо щёлкнуть по нему мышкой. Собери два отдельных скрипта для морковки и для зайца. Морковка-а 52x2•£ Морковка-Ь £2x2’3 Морковка-с 52x218 Морковка-<{ 32x212 Морковка-е £2x212 Морковка-f 82x178
Скрипт для зайца Обрати внимание, что условие «касается» присутствует только в одном из скриптов. Если добавить это условие сразу в скрипты зайца и морковки, возникнет конфликт. Чтобы при соприкосновении с обоими спрайтами что-либо происходило, необходимо использовать обмен сообщениями. Ты ещё не раз увидишь, как обмен сообщениями используется в играх и программах, на страницах этой книги.
БЛОКИ «ПЕРО» . И МАТЕМАТИЧЕСКИЕ УЗОРЫ ШАРФИКИ И КАЛЯКИ-МАЛЯКИ В Скретче есть команды, позволяющие программе рисовать любые узоры. Для всего этого нам понадобятся блоки группы «Перо». Эти блоки могут рисовать линии, цвет и толщину которых можно менять, или печатать изобра- жение спрайта один раз или несколько раз. Сделаем простой проект с такими блоками и назо- вём его «Шарфики». < ШАРФИКИ / Нарисуй несколько простых геометрических фигур в редакторе. ВАЖНО При рисовании в векторном режиме фигуры кажутся маленьки- ми. Они могут находиться не в центре значка спрайта, а свер- ху или сбоку. Так происходит, потому что графический редактор воспринимает векторную фигуру не саму по себе, а вместе с фо- ном. Стоит перевести её в растровый режим - она сразу стано- вится большой и занимает весь значок спрайта.
Расположи фигуру в центре спрайта. Для этого нужно нажать крестик в правом верх- нему углу редактора. На экране появятся тонкие чёрные линии. Перетащи точку их пересечения на фигуру. Какое изображение ты будешь использо- вать - векторное или растровое - неважно. Собери для каждого спрайта код, при помощи которого фигуры будут двигать- ся по сцене и оставлять за собой следы. Запусти программу и нажимай стрелки, двигая объекты. • Теперь соберём для одного из спрайтов другой код.
КАЛЯКИ-МАЛЯКИ Запусти программу, собери скрипт, выбери мышкой спрайт и, не отпуская кнопку мыши, начни рисовать, — В первом проекте мы как будто штамповали рисунок спрайтами, а во втором - просто используем блоки рисования. Если скомбини- ровать эти методы, можно добиться любопытных эффектов. БЛОКИ ГРУППЫ «ПЕРО» Стирает все следы на экране, мжммжмм Создаёт отпечаток спрайта на сцене. — Опускает перо, после чего при движении спрайта на сцене остаётся след. Поднимает перо, и спрайт больше не оставляет следов на сцене.» » Задаёт цвет линии. Цвета пронумерованы так же, как в группе блоков «Внешность» - от 0 до 200. Задаёт цвет линии из палитры цветов. —————— ЩИ ЕЕ)
□ Изменяет цвет линии. К предыдущему значению добавляется число, указанное в параметре блока, и получается новый цвет. Устанавливает нужный цвет для тени пера. По умолчанию (из- начально) тень имеет значение 50. Тень пера похожа на насто- ящую тень, только источник света мы в Скретче менять не мо- жем. Цвет тени можно менять от 0 до 100:100 - это чёрная тень, а при значении 0 тень исчезает. Изменяет цвет тени пера относительно выбранного. □ Устанавливает нужный размер пера. Изменяет толщину пера относительно выбранного ранее размера. Отрицательные числа сделают перо тоньше, а положительные - толще. Поэкспериментируй, чтобы понять, как работают блоки из группы «Перо». Нарисуй голубой круг и собери для него скрипт. Если его запустить, на экране будет появляться интересный орнамент. В верхнем ряду размер пера в цикле растёт (изме- няется на +1), а в нижнем - уменьшается (изменяется на -1). «<{«<<-<о Чтобы создать более сложные орнаменты, тебе понадобятся математические операции.
БЛОКИ ИЗ ГРУППЫ «ОПЕРАТОРЫ» В группе «Операторы» собраны блоки, позволяющие работать с числами и строками и управ- лять значениями переменных. Ты можешь узнать эти блоки по ярко-зелёному цвету. МАТЕМАТИЧЕСКИЕ ОПЕРАТОРЫ С математическими операциями ты хорошо знаком из школьного курса математики - это сложение, вычитание, умножение, деление и другие операции, результатом выполнения ко- торых может быть число или набор символов (строка). Блоки с математическими операциями имеют овальную форму. Скретч позволяет использовать такие блоки в качестве параметров. В ) Операция сложения. Часто используется для присвоения значений переменным, изменения числа шагов, номера цвета, числа повторов действий. Операция вычитания. Используется так же, как операция сложения. Операция умножения. Не забывай, что при умножении на 0 получается О! Q____j Операция деления. Вообще-то на 0 делить нельзя, но Скретч в этом случае будет использовать в качестве результата делимое. io) Выбирает случайное число из диапазона чисел (так называ- ют отрезок между числами на числовой прямой). Этот блок даёт остаток от деления. Так можно проверять, делится ли одно число на другое нацело или нет. Если результат действия равен 0, то числа делятся нацело. 0 Этот блок округляет десятичную дробь до целого значения.
ПРИМЕР. РАСШИРЯЮЩАЯСЯ СПИРАЛЬ Давай попробуем разобраться с тем, как работают математические операторы, на конкретном примере, используя скрипт для рисования расширяющейся спирали. Обрати внимание, что в каждом следующем цикле число шагов увеличивается в 2 раза: 1,2,4,8, 16,32,64... Продолжи этот ряд самостоятельно. “ П Запусти программу. На экра- не появится фигура, которая очень быстро перестанет по- мещаться на сцене. • ч
СТРОКОВЫЕ ОПЕРАТОРЫ Скретч умеет работать не только с числами, но и со строками - последовательностями букв, цифр и других знаков. Строкой является и случайный набор букв, и осмысленное слово, и целая фраза - компьютеру это не важно! склеивает вместе последовательности символов в окошках- параметрах. Его можно использовать, например, чтобы твои герои могли говорить разные фразы в зависимости от ситуации. считывает определённую букву или цифру из последовательности символов. При помощи него можно, например, зашифровать слово: придумать правило и заменить буквы в слове на другие. измеряет длину строки символов, в том числе может измерить длину числа. УСЛОВНЫЕ ОПЕРАТОРЫ Кроме математических операций в Скретче есть операторы, позволяющие сравнивать числа и значения. Они используются для проверки условий.
ПРИМЕР. ПОВОРОТЫ Сделаем ещё один проект, используя блоки «Перо» и математиче- ские операторы. Для него нам понадобятся три переменные. Отметь галочками, чтобы их значения показывались на сцене. • В этом эксперименте нам нужно создать два скрипта. СКРИПТ ДЛЯ СЦЕНЫ when Stage dtcfced J передать Рисуй здесь Щёлкни по изображению сцены в нижнем левом углу экра- на, перейди в область скриптов и собери маленький скрипт. Теперь программа будет передавать другим скриптам сообщение «Рисуй здесь» при каждом щелчке мышью в любой точке сцены. Второй скрипт понадобится для рисования фигур, для него тебе понадобится создать пустой спрайт. Скрипт продолжит рабо- ту, только если получит сообщение «Рисуй здесь». Это сообщение передаётся сценой, когда кто-нибудь щёлкает мышью. S3
Когда пользователь щёлкает мышью по экра- ну снова, действие скрипта «Рисуй здесь» повторяется. Обрати внимание, что нарисо- ванные фигуры соединены линиями, ведь мы не поднимали перо. Давай переделаем наш скрипт, чтобы он ри- совал простые треугольники, не соединён- ные линиями. Теперь число сторон и угол принимают толь- ко одно значение - 3 и 120. ——
Вообще-то переменная «число сторон» здесь не очень-то и нужна, можно её удалить и прямо указать в цикле рисования, что цикл надо повторить 3 раза. А что произойдёт, если у нашего многоугольника будет большое количество сторон? Мы добавили в наш скрипт блок из группы «Сенсоры»: он задаёт вопрос и ждёт ответа. Пока пользователь не ответит, программа не действует. Ответ пользователя становится значением переменной™ когда и»е/ткнут по поднять перл задать угол_поворота «д.нг. ядш повернуть 01 на поднять перо когда я получу Рису и здесь перейти в указатель мышки Эту переменную мы используем для расчёта числа сторон фигуры, которую будем рисовать. Теперь программа никак не огра- ничивает число сторон много- угольника, которое можно ввести в окошке «ответ». Попробуй вво- дить разные числа. Обрати вни- мание, что при увеличении коли- чества сторон наш многоугольник становится всё больше и больше Сколько сторон? задать ч нсл о_сто рп н чвсгн» сторон похож на круг.
Результатом работы нашей программы станет множество многоугольников разного размера, часть из них будет похожа на круги, а на остальных будут хорошо заметны рёбра. ЭТО ИНТЕРЕСНО Круг - это многоугольник с очень большим числом сторон. Чем больше размер многоугольника, тем больше в нём должно быть сторон, чтобы он был похож на круг. ВАЖНО Если пользователь введёт в окошке «ответ» буквы, то программа ничего не нарисует. Буквенные переменные применяются в разных блоках, но математический оператор деления понимает только цифры.
В ПЕРВАЯ БОЛЬШАЯ ИГРА . «МОРКОВКОПАД» Перед тем как приступить Обычно в играх действие происходит на каком-либо фоне, и скучно, если это будет простой белый или голубой квадрат. В Скретче есть специальная библиотека фонов, которая организована так же, как и библиотеки звуков и изображений. • П Сцена 2 фоны нс = а фен: Но ты можешь и сам нарисовать фон или загрузить его из файла. Для того чтобы открыть библиотеку фонов, щёлкни значок с изображением пейзажа в области фонов слева. Чтобы выбрать нужный фон, просто дважды щёлкни на нём, и он появится на сцене, в области фонов и на вкладке «Фоны» (справа). • -j С фонами можно работать так же, как с костюмами спрайтов - рисовать в векторном или растровом режиме, создавать дополнительные фоны на основе уже имеющихся при помощи пункта меню «Дублировать».
ИГРА «МОРКОВКОПАД» А Пусть морковки падают с неба, а заяц ловит их, одновременно перепрыгивая или об- ходя лужи, ведь зайцы очень не любят воду! За добычу морковки заяц получает очки, а за попадание в лужу - теряет. Заяц толстеет, поедая морковки, поэтому ему ста- новится всё труднее обходить лужи. Если игроку удалось так накормить зайца, что он достаточно подрос и не слишком сильно вымок, то игра переходит на следую- щий уровень. При этом морковки начинают падать с неба всё быстрее. Если заяц съел морковки на четырёх уровнях подряд, он получит приз - капусту. 4 4
КО РИСУЕМ ФОНЫ Нарисуй в графическом редакторе четыре фона с разным количеством луж. Запусти старую игру, подставив любой из новых фонов. Сразу видно, что заяц и морковка слишком велики и не помещаются в проходах между лужами. Так что нам придётся уменьшить размеры спрайтов зайца и морковки. Если тебе не хочется перерисовывать спрайты, можно просто добавить в начало скрипта мор- ковки блок Теперь достаточно подобрать значение параметра, а спрайт и все его костюмы изменятся одинаково. ПОДСКАЗКА Если векторный рисунок состоит из нескольких фигур, то обведи все объекты инструментом выделения - они будут выделены одновременно.
ВАЖНО Знак % означает 1/100 (одну сотую) долю какой-либо величины. Если говорят, что число А составляет 10 % от числа Б, это значит что число А - одна десятая часть числа Б, то есть меньше числа Б в 10 раз. СКРИПТ МОРКОВКИ Нам нужно создать скрипт для морковки, падающей с неба. В этом варианте игры морковке понадобится только один костюм (уменьши его до нужного размера). когда щелкнут по I спяль вращении не вращать Морковка появляется в случайном месте сверху экрана и падает вниз. Если заяц ловит её, то она исчезает с экрана и передаётся информация об этом событии. Если же заяц не поймал морковку, то она продолжает падать и пропадает, когда достигает нижнего края сцены. Затем всё начинается сначала.
ВАЖНО Обрати внимание, что последнее действие «Скрыть морковку» долж- но находиться внутри цикла «всегда». Если оно попадёт внутрь цикла «повторять, пока не», то морковка будет пропадать после выполнения первого же шага. ДОБАВЬ ЕЩЁ МОРКОВОК Продублируй спрайт морковки, тогда новые спрайты - морковка?, морковкаЗ - получат тот же скрипт, что и исходный. СОВЕТ В Скретче при дублировании спрайтов дублируются и скрипты. Если в про- грамме понадобятся несколько похо- жих спрайтов, которые будут действо- вать одинаково, лучше сначала создать скрипт для одного спрайта, а потом дублировать его. Если мы теперь запустим игру, то увидим, что все три морковки появляются и падают одновременно. Интереснее сделать так, чтобы они падали по очереди. Для этого в скрипты 2-го и 3-го спрайтов мы добавим небольшую временную задерж- ку - блок «ждать 2 секунды», чтобы эти морковки появлялись через некоторое время. Значение можно сделать любым, даже случайным, чтобы задержка при появлении мор- ковок была разной. Это может быть случайное число от 1 до 5. • в *1
СКРИПТЫ ДЛЯ ЗАЙЦА Теперь соберём скрипты для зайца. Их будет несколько, но все они располагаются на одном экране. Для того чтобы удобнее было расставить скрипты, воспользуйся правой кнопкой мыши и пунктом меню «Упорядочить». Первая группа скриптов описывает перемещения зайца по командам с клавиатуры. •
ЭКСПЕРИМЕНТ Поэкспериментируй с длиной шага, который заяц делает при нажатии клавиш. Вторая группа скриптов описывает запуск игры: Разберём подробнее, что происходит в этом скрипте. 1. Открывается первый фон. 2. В случайном месте экрана появляется заяц. Если заяц случайно окажется в воде при по- явлении на экране, игрок сразу получит штрафные очки. Чтобы заяц на старте не попал в воду, приходится вновь и вновь случайным образом размещать зайца, пока он не окажет- ся на травке. повторять пока «е uaeia
3. Затем устанавливается размер зайца. Это делать не обязательно, можно просто умень- шить размер спрайта в графическом редакторе. Но если один и тот же спрайт использует- ся в разных программах, удобнее изменять его размер в программе. 4. Следующие действия - это задание переменным первоначальных значений, то есть значе- ний, которые должны у них быть до начала действий игрока в программе. * Переменная «Номер уровня» запоминает, на каком уровне находится игрок. Она ис- пользуется для сообщения о переходе на следующий уровень и об окончании всей игры. Эта переменная выводится на экран, чтобы игрок знал, на каком уровне он играет. ус та но вить размер & задать Номер уровня «(.тченве * Переменная «Морковки:» запоминает, сколько морковок съел заяц. Это число тоже вы- водится на экран. задать Морконкл: значент1 * Переменная «Вода!» запоминает, сколько раз заяц наступил в лужу. Она тоже выводит- ся на экран и позволяет остановить игру, если заяц слишком сильно вымок. * Переменная «Скорость» управляет скоростью падения морковок. Значение этой пере- менной - это число шагов за одно действие. Чем оно больше, тем быстрее морковка дви- жется по экрану. 5. При старте игры игрок двигает зайца, стараясь поймать морковки. Если заяц попадает в лужу, то счётчик воды увеличивается. Игрок получает штрафные очки - теряет одну пой- манную морковку.
Для того чтобы переменные показывались на сцене, нужно в группе ✓ блоков «Данные» поставить слева от них галочки. ? (_________j Возле переменной «Скорость» мы не ставим галочку - игроку её знать 9 не обязательно. в Обрати внимание, что в скрипте используется условие «или» из группы блоков «Операторы» * Блок проверки условия «если.., то» проверяет, касается ли заяц определенного цвета. Чтобы указать конкретный цвет, щёлкни мышкой сначала внутри окошка параметра блока «Касается», а затем на соответствующий цвет на сцене. Цвет в окошке параметра изменится на нужный. * Блоки можно комбинировать так, чтобы выбирать не из двух усло- а из нескольких КОНЕЦ ИГРЫ Последний скрипт зайца описы- вает, что происходит с зайцем, когда он ловит морковки, как игра переходит на следующий уровень и как она заканчивается.
Разберём его подробнее. 1. Скрипт запускается, если морковка отправила сообщение «Заяц съел морковку» (спрайты зайца и морковки встретились, то есть у них оказались одинаковые координаты). Заяц растёт, его размер надо увеличить. когда я получу Заяц съел морковку KMUHib Морковки: на о| изменить размер на О 2. Если размер становится больше 400 (это число можно менять), заяц наелся и пора пе- реходить на следующий уровень. Увеличиваем номер уровня на 1 и сообщаем об этом. Размер зайца на новом уровне опять уменьшается до 50 %, как в начале игры. Откры- вается новый фон, и заяц появляется на траве в случайном месте. С каждым уровнем морковки падают всё быстрее и быстрее. если размер > ЕЭ , ™ j менять Номер уровня на о говорить слить Нпнгр уровня в течение 0 секунд установить размер о | сменить фон на спадуюший фон 3. Проверяем состояние переменных «Вода!» и «Номер уровня». Если заяц промок, останавливаем игру. Если игрок завершил 4-й уровень и переменная номера уровня равна 5, то объявляется победа игрока. ЕЯ
4. Если нет ни проигрыша, ни победы, работа скрипта завершается и управление игрой пере- даётся в скрипт морковки. если Н<м^р уровня - 0 , говорить в течение О секу на передать Держи капусту ДОБАВЛЯЕМ ПРИЗ - КАПУСТУ Добавь новый спрайт - капусту - и его скрипты. котла шелкэгут по переятя в х: Оу О скрыть когда я получу Держи капусту показать При запуске игры капуста показывается в центре сцены, а потом исчезает до того момента, пока не получает сооб- щение «Держи капусту» из скрипта «Заяц съел морковку». Игра останавливается. ЧТО МОЖНО ИЗМЕНИТЬ В ПРОГРАММЕ * Использовать общий фон и нарисовать лужи в виде отдельных спрайтов. Тогда подсчёт очков «воды» будет вестись при столкновении спрайта зайца со спрайтами луж. * Вынести в отдельный скрипт блок команд, отвечающих за появление зайца на траве. Этот скрипт будет вызываться сообщением из других скриптов. Это нужно будет сделать, если нам понадобится изменить принцип появления зайца на экране, мы сделаем изменения только в одном месте. * Использовать другой способ для управления движе- нием зайца. Можно указывать мышкой направление дви- жения. * Теперь зайца можно перемещать по сцене, щёлкая мышкой в том месте, куда должен перейти заяц. Удобно ли такое управление? * Сделать так, чтобы спрайты луж перемещались. Зайцу будет труднее одновременно об- ходить лужи и ловить морковки. когда щелюгут по «тереяти в указатель мышки
Ч «ОХОТНИКИ ЗА ПРИВИДЕНИЯМИ» . ВЫХОДЯТ НА ТРОПУ войны Описание Сделаем игру, в которой мальчик-волшебник должен проникнуть в старинный замок с сокровищами. Только вот беда - замок охраняют привидения! Победить их помо- жет взмах волшебной палочки. Каждый уровень игры открывает новое место в замке или в его окрестностях: дорожка, входная дверь, лестница - и везде живут привиде- ния. Последний уровень - это длинная галерея, ведущая к выходу из замка. С каж- дым уровнем привидения становятся всё сильнее и сильнее, поэтому на дорожке к замку волшебнику необходимо продержаться 50 секунд, а в галерее только 10. Что- бы перейти на следующий уровень, нужно набрать не меньше 10 очков. Набранные очки сохраняются и суммируются. Кто наберёт больше всего очков за 5 уровней?
ИНВЕНТАРЬ Нам понадобятся * Фоны сцены из библиотеки фонов, изображающие разные места в замке. * Спрайт мальчика-волшебника из библиотеки спрайтов. Мы добавим ему ещё одну волшебную палочку, чтобы целиться в привидения, пролетающие с разных сторон. * Спрайт привидения и несколько костюмов для него. ДОБАВЛЯЕМ ВТОРУЮ ПАЛОЧКУ И ВОЛШЕБНЫЙ СВЕТ Откроем спрайт мальчика-волшебника в графическом ре- дакторе и добавим вторую волшебную палочку. Для этого надо перейти в векторный режим, выделить па- лочку инструментом Ю , скопировать её (клавиши Ctrl+C), вставить (клавиши Ctrl+V) и вложить во вторую руку. I I Теперь добавим нашему герою два костюма. Продублиру- ем первый костюм и при помощи инструмента z заставим кончик волшебной палочки светиться. Так волшебник будет прогонять привидения, пролетающие над ним.
Продублируем первый костюм ещё раз и подрисуем волшеб- ный свет к кончику нижней палочки. Он будет прогонять привидения, летающие внизу. ДОБАВЛЯЕМ ФОН Добавим из библиотеки фонов пять изображений, соответствующих разным местам в замке. • • 2 430x380 Расставим их в соответствии с порядком по- явления в игре. Назови фоны так, чтобы ими было удобно пользоваться, - в скриптах мы будем подключать новый фон при определён- ных условиях. ДОБАВЛЯЕМ Новый костюм: ПРИВИДЕНИЯ Добавим спрайт привидения из библиоте- ки спрайтов и несколько костюмов для него. При попадании в привидение волшебного света оно будет менять костюм, становиться прозрачным и потом исчезать. « к ghost2-a Mtxi34 ghost2-t 13Ex4t
ДОБАВЛЯЕМ СООБЩЕНИЕ О ПОБЕДЕ I/I ПРОИГРЫШЕ Чтобы сообщить о победе или поражении в игре, нам понадо- бятся картинки,которые будут появляться, когда истечёт вре- мя игры или если игрок прой- дёт все уровни. Для этого создадим новые спрайты. I L — — — — В графическом редакторе Скретча есть специальный инструмент, позволяющий написать текст на картинке, но пока в нём можно использо- вать только латинские буквы. Так что русские буквы придётся рисовать(мы использовали прямые линии). Чтобы облег- чить себе жизнь, можно создать собственную библиотеку рус- ских букв - нарисовать их в виде отдельных файлов и загружать в проекты. КОПЕН ИГРЫ
Перетащи крестик, соответству- ющий центру спрайта, в сере- дину каждой из картинок, что- бы на сцене они оказались тоже в центре, СОВЕТ Пока скрипты спрайтов ещё не написаны, все спрайты показываются на сцене одновременно. Скрыть или показать отдельные спрайты можно, щёлкнув на блоках Q^S и из группы «Внешность».
ДОБАВЛЯЕМ СКРИПТЫ ДЛЯ ФОНОВ, ВОЛШЕБНИКА И ПРИВИДЕНИЙ Теперь, когда инвентарь подготовлен, нужно продумать последовательность действий в игре и написать код - собрать скрипты. Запуск игры Начинается первый уровень игры. Нам понадобятся: * фон первого уровня, волшебник и привидения; * счётчики для очков уровня, всей игры и времени (таймер). В начале игры все эти значения должны быть равны нулю. 1. Привидения начинают двигаться, волшебник атакует их взмахами волшебной палочки. При каждом попадании счёт уровня и общий счёт увеличиваются на 1. 2. Время игры на первом уровне подходит к концу, теперь нужно проверить, сколько оч- ков набрано. Если игрок успел набрать 10 очков, включается следующий уровень, иначе игра заканчивается - выводится сообщение «Конец игры» и раздаётся печальный звук. Перекод на следующий уровень Нам понадобятся: * фон нового уровня, волшебник и привидения; * счётчики для очков текущего уровня, всей игры и таймер. 1. Счётчик уровня обнуляется, а общий счёт игры сохраняется. Запускается таймер теку- щего уровня. 2. Сложность должна возрастать, чтобы игроку было интересно. Поэтому 10 привидений нужно победить быстрее, чем на предыдущем уровне, - не за 50 секунд, а за 40,30 или 20. 3. Время подходит к концу, нужно проверить, сколько очков набрано. Если игрок успел набрать 10 очков, включается следующий уровень, иначе игра заканчивается - выводит- ся сообщение «Конец игры» и раздаётся печальный звук. jffl
Окончание игры Если на последнем, пятом уровне игрок набрал 10 очков за 10 секунд, то появляется надпись «Победа!», звучит радостная музыка и игра останавливается, в другом случае выводится сооб- щение «Конец игры» и раздаётся печальный звук. СКРИПТ ВОЛШЕБНИКА Скрипты можно создавать в любом порядке. Некоторые разработчики игр стараются дви- гаться в соответствии с порядком действий в игре, другие сразу создают отдельные работа- ющие фрагменты, а потом добавляют функции. Давайте начнём с действий нашего героя - волшебника. Он должен двигаться вслед за указателем мыши. Чтобы волшебник не дёргался, стоя на одном месте, мы поставили условие: ничего не пред- принимать, пока расстояние до указателя мышки меньше 10. Потом, когда на сцене появятся привидения, можно будет поэкспериментировать с этим значением.
ВТОРОЙ СКРИПТ ВОЛШЕБНИКА когда я пол уму Попал описывает, что происходите нашим героем, когда он попадает в привидение. Счёт (уровня и игры) увеличивается, и на кончике волшебной палочки появляется вспышка света. Если в этот момент волшебник движется вверх, то работает «верхняя» палочка, если вниз - «нижняя». Про то, как работать с направлением движения, мы говорили на с. 13: направлению вверх соответ- ствует диапазон значений от -90 до 90. направо сменить костюм на wizard boy играть звук Iaser2 сменять костюм на wizard ЬоуЗ СКРИПТЫ ПРИВИДЕНИЯ Пора подумать и о врагах - заставить двигаться привидение. если на краю, оттолкнуться
Но что происходит, когда волшебник наносит удар по привидению? Всё очень просто: БОЛЬШЕ ПРИВИДЕНИЙ Ловить одно привидение слишком просто и скучно, пусть их будет больше. Продублируем спрайт привидения, а скрипты оставим без изменений. Прмвиде . Теперь все привидения будут появляться в случайном месте, поворачиваться и летать. Как ты думаешь, сколько привидений понадобится, чтобы играть было достаточно сложно, но можно было победить?
ЕШ СКРИПТ ПЕРЕХОДА НА СЛЕДУЮЩИЙ УРОВЕНЬ Итак, привидения умеют летать, а волшебник - сражаться. Теперь разберёмся с общей логикой игры. Нам понадобится пять скриптов (по количеству уровней игры):
При запуске игры возникает сообщение «Уровень 1». Скрипт сцены получает его, включает первый по порядку фон и обнуляет таймер (группа блоков «Сенсоры»). На сцене появляются и начинают двигаться волшебник и привидения (в соответствии со своими скриптами). На первом уровне игроку даётся 50 секунд. Как только значение таймера достигает 50, игра проверяет количество набранных очков. Если волшебник не смог победить 10 привидений, увы, игра заканчивается. Если смог - начи- нается второй уровень. Алгоритм работы этого уровня такой же, как и у предыдущего, но время игры меньше - 40 секунд. На следующих уровнях оно будет ещё меньше, и на пятом, последнем уровне мы дадим игроку только 10 секунд. Впрочем, ты можешь выбрать другие значения. СКРИПТЫ ПОБЕДЫ И ПОРАЖЕНИЯ Нам осталось описать поведение игры в случае победы и в случае поражения. Скрипт сцены отправляет сообщение «Конец игры» или «Победа». Спрайты для них мы уже нарисовали. Теперь соберём сами скрипты. Скрипт победы: Скрипт поражения:
Проверим работу нашего скрипта. Всё делается как нужно, но спрайты привидений и волшеб- ника продолжают двигаться. Команда «Стоп все» остановила не всю игру, а только действие скриптов своего спрайта (для которого она написана). Добавим ещё один небольшой скрипт для всех спрайтов. когда я получу Конец игры стоп нс® Теперь остановится всё, кроме таймера, который будет продолжать отсчитывать секунды. Так уж он устроен - его можно перезапустить, но невозможно остановить. • “ “ “ Ч Проще всего было бы не показывать таймер на экране, но игроку нужно знать, сколько времени осталось до конца уровня. Справиться с этой зада- чей помогут специальные спрайты с изображением соответствующих цифр, которые можно вывести на экран, когда таймер достигнет нужного значе- ния. Ещё более интересная и сложная задача - обратный отсчёт времени. Таймер работает, отсчитывая секунды, а игрок видит, как уменьшается вре- мя, отведённое для игры: 50,49,48... и так далее.
КАК СДЕЛАТЬ КОД ИГРЫ КОРОЧЕ Повторяющиеся действия можно сократить, используя для них один код, в котором будут меняться параметры: • — — — _________________________________I Теперь мы можем легко добавлять новые уровни, а новые скрипты при этом писать не надо. Что ещё можно сократить в этом коде? * Добавить переменную «Номер фона», тогда можно будет не указывать имя конкретного фона. * Уменьшать значение переменной, хранящей продолжитель- ность игры при переходе на следующий уровень.
ным. Если внести в наш скрипт все эти измене- ния, он станет коротким, но менее понят- Сделать скрипт коротким и понятным легко, для этого достаточно выделить блоки, которые бу- дут отвечать за «Проверку» и «Смену фона» « «
когда я получу Уровень 1 сменить фон на 1 норе тапупить таймер I задать Таймер фона знамен bi егда Проверка I сменить фон на следующий фон задать Счет уровня значение Я перез.алу<гжттэ таймер змшиггь Таймер фона на Дуу I Проверка Счет уровня < ш передать Конец игры Если ты решишь добавить ещё несколько уровней, достаточно будет изменить но- мер последнего фона (в блоке сравнения с переменной «Фон#») и проконтроли- ровать значение таймера уровня, чтобы оно не стало нулевым или отрицатель- ным. Для смены фонового изображения нужно указать только имя первого фона, а остальные будут меняться автоматически.
сделай игру сложнее И ИНТЕРЕСНЕЕ Такую игру можно усложнить. Привидения могут влиять на волшебника, постепенно превра- щая его в призрака. Если он растает до того, как нейтрализует 10 привидений, игра проигра- на! Примени к волшебнику эффект «призрак», как для привидений, и свяжи его, например, со щелчками мыши - с каждым «заклинанием» волшебник будет терять энергию. Чтобы добавить другие виды привидений, продублируй спрайт первого привидения, добавь новые костюмы и удали старые. Скрипты сохранятся, а на сцене появятся новые спрайты. 1Г1 ИГРА U. «ТАНЧИКИ» Вражеские танки появляются свер- ху и двигаются в нашу сторону, вре- мя от времени стреляя. У игрока есть только один танк, у которого три жизни, - вражеский снаряд мо- жет попасть в него три раза. После этого игра завершается. Каждый подбитый вражеский танк прино- сит игроку одно очко. При столкно- вении танков подбитыми считаются оба! Задача игрока - продержаться в схватке как можно дольше и на- брать как можно больше очков.
ОБЩЕЕ ОПИСАНИЕ ИГРЫ Игра кажется простой, но при её написании нужно учесть достаточное количество сложных моментов. Поэтому начнём с пользовательского сценария и общего алгоритма. * Игрок запускает игру. Он видит на экране свой и вражеский танки. Клавишей «пробел» игрок стреляет. Стрелка вверх двигает танк вперёд, а стрелка вниз - назад. Стрелками вправо и влево танк можно повернуть в нужную сторону. * Если наш снаряд попал во вражеский танк, тот взрывается. Мы получаем 1 очко. * На первом уровне новые вражеские танки появляются на экране каждые 10 секунд. * При наборе 5 очков игрок переходит на второй уровень: на экране могут находиться два вражеских танка одновременно, а интервал между их появлением уменьшается на 1 секунду. * Когда игрок набирает 10 очков, на экране уже могут находиться три вражеских танка, а интервал сокращается ещё на одну секунду. * Далее количество вражеских танков уже не растёт, но каждые на- бранные 5 очков уменьшают время до появления нового врага. На экране может находиться разное количество танков, их количе- ство зависит от уровня и точности нашей стрельбы. * Вражеские танки стреляют каждые 5 секунд. * Если вражеский снаряд попадает в наш танк, раздаётся взрыв. У нашего танка три жизни, так что наш танк может пережить только три попадания или столкновения. * Если у нашего танка кончились жизни, игра заканчивается. * Игрок выигрывает, если достигает девятого уровня (интервал между появлением новых вражеских танков составляет 2 секунды) или набирает 100 очков.
КАКИЕ СПРАЙТЫ ПОНАДОБЯТСЯ Нарисуем наш танк (этот спрайт можно так и назвать: «Наш») и назовём первый костюм «Прицел». — — — — — Танку понадобятся два костюма: на случай выстрела и на случай попадания в него вражеского снаряда. * ж ж Продублируй только что созданный спрайт и переименуй его во «Врага», только не забудь перекрасить все костюмы танка в синий цвет. (Вспышка выстрела может остаться такой же.) Продублируй перекрашенный спрайт ещё два раза и назови новые танки «Враг2» и «ВрагЗ». Создаём и рисуем новый спрайт, который можно назвать «Наш снаряд». — — — Дублируем спрайт, перекрашиваем в синий цвет и называем его «Их снаряд!».
и сообщения о победе и поражении Если ты собираешься использовать русские буквы, сохрани алфавит в виде графических файлов. ТАНК ПОЯВЛЯЕТСЯ НА ПОЛЕ В начале игры наш танк появляется внизу экрана. Игрок управляет им при помощи клавиш со стрелками, а пробелом делает выстрел. Соберём код для спрайта «Наш танк». когда щелкнут по задать Осталось жизней тнапатс передать Новый танк При запуске программы скрипт задаёт значе- ние переменной «Осталось жизней» и переда ёт сообщение «Новый танк». Сообщение «Новый танк» запу- скает скрипт, который выводит танк на поле боя. В Скретче есть встроенная пе- ременная «Направление», кото- рая позволяет легко узнать, куда движется спрайт. А переменная «Направление нашего» приго- дится для ориентации нашего снаряда и вражеского танка. когда я получу Новый танк перейти в х: 0у повернуть в направлении Q сменить костюм на Прицел показать задать Направление нашего значение направление
ТАНКИ ДВИГАЮТСЯ И СТАЛКИВАЮТСЯ Что будет, если танки столкнутся? Создадим скрипты, которые позволят игроку управлять поведением танка I Танк должен не только ездить вперёд и назад, но и уметь поворачивать. Для того чтобы игрок мог управлять танком с помощью стрелок на клавиатуре, понадобится несколько скриптов. когда клавиша стрелка влево нажата Сделаем общий блок «Проверка столкновения». повернуть К} на о градусов гадать Направление нашего значение направление определить Проверка столкновения если касается Враг касается Враг2 ? касается ЗрагЗ ? jHTO передать Столкнулись Сообщение о столкновении меняет костюм нашего танка на «Подбит» и отправляет сообщение о конце игры. Столк- новение приравнено к попаданию вражеского снаряда. когда я получу Столкнулись сменить костюм на Подбит передать Конец игры
Без отдельного скрипта, анализирующего столкновения, легко можно обойтись, просто до- бавив смену костюма и передачу сообщения в код проверки столкновения. Но последствия столкновения касаются не только нашего танка, но и вражеского. Эту задачу лучше выделить в отдельную процедуру - сообщение о столкновении будет затрагивать и вражеский танк: менять его костюм и уничтожать. ВЫСТРЕЛ ВО ВРАГА Чтобы танк выстрелил, игрок должен нажать пробел. При выстреле возникает сообщение «Выстрел», внешний вид танка меняется и раздаётся звук. Через 1 секунду танк вернётся к исходному виду. Сообщение о выстреле понадобится снаряду, который должен вылететь в сторону врага. • «| когда клавиша пробел нажата передать Выстрел сменить костюм на Выстрел играть звук drum buzz ждать о секунд сменить костюм на Прицел НАШ ТАНК ПОДБИТ Последний скрипт, который нужен нашему тан- ку, - обработка попадания в него вражеского снаряда. Сообщение об этом факте будет передавать вра- жеский снаряд. При получении сообщения наш танк на 1 секунду меняет костюм на «Подбит», потом пропадает. Число жизней танка уменьша- ется на 1. Сразу происходит проверка: если жиз- ни закончились (равны 0), то игра заканчивается. Если жизни ещё есть, то отправляется сообще- ние «Новый танк». Его ловит спрайт танка, и всё происходит заново. когда я получу Попали в нашего сменить костюм на Подбит ждагь О секунд скрыть изменить Осталось жизней на I если Осталось жизней - Q , то передать Конец игры иначе передать Новый танк
ПОВЕДЕНИЕ СНАРЯДА В начале игры нашего снаряда не должно быть видно на экране. Получив сообщение «Выстрел», сна- ряд начинает действовать. Он пере- мещается в стартовую точку - место, где расположен танк игрока, стано- вится виден на экране и летит, причём направление его движения должно совпадать с направлением движения танка в этот момент. “ “ “ Н когда щелкнут по скрьгтъ когда я получу Выстрел перейти в Наш показать повернуть в направлении Направление нашего Достигнув края сцены, снаряд должен исчезнуть, поэтому скрипт постоянно проверяет положение спрайта на сцене. ——————— если касается край если касается Враг! ? , то Наш снаряд взрывается I * передать Попали во Bparal i . - ——-----— стоп этот скрипт если касается Враг2 ? то Наш снаряд взрывается передать Попали во Врага2 СТОП этот скрипт если касается ВрагЗ ? , то Наш снаряд взрывается передать Попали во ВрагаЗ стоп этот скрипт скрыть перейти в Наш стоп этот скри! Вторая проверка - попадание во вражеские танки. В этом случае снаряд замирает на долю секунды, пропадает и пе- редаёт сообщение о попадании в конкретный танк. Подби- тый танк получает это сообщение, а действие скрипта «Выстрел» останавливается. I
Теперь пора разобраться с тем, как ведут себя вражеские танки и снаряды. • в в в в П определить Наш снаряд взрывается ждать С2Э секунд скрыть перейти н Наш НА СЦЕНЕ ПОЯВЛЯЕТСЯ ВРАГ Вражеский танк появляется на любом месте в верхней части сцены. Направление его движения (ориентация) также любое. Обнаруживая наш танк, враг поворачивается в его сторону и через несколько секунд делает вы- стрел. Теперь вражеский танк будет двигаться и поворачиваться вслед за танком игрока. На 2-м уровне на экране будут уже два вражеских танка, на 3-м уровне - три. Каждый из этих танков работает по такому же алгоритму, что и первый. Уровней (и танков) может быть много, но мы ограничимся тремя. Соберём код для появления и движения вражеского танка. Участки кода не повторяются, но чтобы сделать скрипт более понятным, мы создали два отдельных блока - «Появление танка» и «Движение и выстрел танка». • когда я получу Запуск Врага 1 Появление танка всегда Движение и выстрел танка Танк появляется в случайном месте ввер- ху экрана и начинает искать цель: пово- рачивается на случайный угол, делает паузу, несколько шагов и опять замирает. определить Появление танка сменить КОСТЮМ на Прицел показать перейти в х: выдать случайное от -90 повернуть на выдать случайное oi ждать ГПГ1 секунд идти 0 шагов I ждать секунд
определить Движение и выстрел танка повернуться к наш зада 1ь Направление врага значение направление I идти 0 шагов I f ждать СУ секунд идти © шагов I Г ждать о секунд [идти © шагов | ждать Q секунд [передать Выстрел Врага! I играть звук поп ждать о секунд Ц Потом вражеский танк начинает повторять одни и те же действия: поворачивается к нашему танку, подходит ближе, прицели- вается, стреляет. Переменная «Направление врага» запоми- нает угол поворота танка, чтобы передать его вражескому снаряду. Паузы в 5 и 10 секунд позволят игроку прицелиться и подбить вражеский танк. С этими значениями можно эксперименти- ровать: чем они меньше, тем быстрее дви- гается и стреляет враг. Когда враг получает сообщение о том, что он подбит (это сообщение передаёт снаряд игрока), костюм меняется, танк пропадает, но передаёт сообщение об изменении счёта и запуске ново- го танка. Если вражеский танк сталкивается с нашим, то он взрывается, и игра заканчивается. I когда я получу Попали во Врага! [ сменить костюм на Подбит передать Конец игры когда я получу Столкнулись I сменить костюм на Подбит ! с крыть передать Изменить счет передать Запуск Врага! ВЫСТРЕЛ ВРАГА Враг будет стрелять каждые несколько секунд, вне зависимости от своего положения и действий игрока. Сначала вражеский снаряд скрыт, так же как и снаряд игрока.
Снаряд перемещается в стартовую точку - место, где расположен враже- ский танк, становится виден на экране и начинает движение, причём направле- ние полёта должно совпадать с направ- лением танка. Написанный для танка скрипт Враг! можно продублировать в остальные танки. Только не забудьте поменять соответствующие сообщения - «Запуск Врага2», «Попали во ВрагаЗ» и так далее. Если случайно забыть исправить какое-нибудь сообщение, то одно попадание во вражеский танк случайно уничтожит всех врагов. когда я получу Выстрел Bparal перейти в Враг! показать повернуть в направлении Направление врага всегда скрыть СТОП этот скрнггг перейти в Наш Попали в нашего передать Наш ИДТИ е шагов если Kacaei си перейти в ВрагЗ если. касается ждать О секунд стоп этот скрипт скрыть ВРАГОВ СТАНОВИТСЯ БОЛЬШЕ когда щелкнут по ) задать Подбито значение У задать Уровень значение Ц задать Время между врагами значение если Уровень Ц , то I передать Запуск Врага! Игра почти готова, но не создан переход на новые уровни, на которых появляются всё новые и новые танки. Этот скрипт можно при- вязать к любому из танков, но лучше, если та- кой код будет максимально обособлен. Про- блему решит пустой спрайт с кодом запуска программы и смены уровней, теперь всем бу- дет понятно, что этот код относится не к кон- кретному спрайту, а ко всей игре.
При запуске игры задаются первоначальные значения переменных и передаётся сообщение о включении первого уровня (один танк). Процедура «Запуск Врага!» (при выполнении определённых условий) запускает второй и тре- тий танки. В этом скрипте использована функция mod - математическая операция, вычисляющая остаток от деления первого числа на второе. Звучит страшно, но не пугайтесь, всё очень просто. Следу- ющий уровень начинается, когда игрок набирает 5,10,15,20... очков. Так что для перехода нам достаточно знать, что при делении набранных очков на 5 остаток должен быть равен нулю. На каждом новом уровне время до появления следующего танка уменьшается. когда я получу Изменить счет изменить ПодЬкпт» на £> если Подбито mod 0 ’ Ы • то 1 изменить Угювень на О изменить Время между врагами на 1 если Уровень > Д , то 1 ждать Время между врагами секунд | передать Запуск Врага? если Уровень > Й| > то 1 ждать Время между врагами секунд 1 передать Запуск ВрагаЗ если Время между врагами EI или 1 Подбито №1*1 передать Победа*
ПОБЕДА! Осталось только красиво закончить игру - добавить пару крошечных скриптов, которые выглядят прак- тически одинаково. ИГРА ГОТОВА! ДО НОВЫХ ВСТРЕЧ СО СКРЕТЧЕМ!
Т60 ББК 32.973.2-018 УДК 004.3 Торгашева Ю. Программирование для детей. Мои первые программы на Scratch. —СПб.: Питер, 2018. — 96 с.: ил. — (Серия «Вы и ваш ребёнок»). ISBN 978-5-4461-0881-7 Не сомневаюсь, что ты любишь жрать на компьютере, телефоне или планшете и смотреть 3 D-мультфильмы. А зна- ешь, как их делают? Для этого нужны программы — наборы команд, которые приказывают компьютеру двигать героев по экрану. А теперь — самое главное. Ты можешь сам делать такие программы! Придумывать шры со своими героями, рисо- вать мультфильмы — всё, что захочешь. Для этого создали специальную детскую среду программирования Скретч. Все команды в ней нарисованы как цветные значки-блоки, из которых удобно собирать программы. Это похоже на конструктор «Лего». Просто берёшь кубики и собираешь сложную программу или шру. Давай вместе отправимся в удивительный мир програм- мирования! 6+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ISBN 978-5^461-0881-7 Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Юлия Торгашева Программирование для детей Мои первые программы на Scratch Серия «Вы и ваш ребёнок» Заведующая редакцией Ю. Сергиенко Ведущий редактор К. Тулъцева Художественный редактор Д. Семёнова Корректоры Н. Сидорова, Г Шкатова © ООО Издательство «Питер», 2018 © Серия «Вы и ваш ребёнок», 2018 Изготовлено в России. Изготовитель: ООО «Прогресс книга». Место нахождения и фактический адрес: 194044, Россия, г. Санкт-Петербург, Б. Сампсониевский пр., д. 29А, пом. 52. Тел.: +78127037373. Дата изготовления: 05.2018. Наименование: книжная продукция. Срок годности: не ограничен. Импортер в Беларусь: ООО «ПИТЕР М», 220020, РБ, г. Минск, ул. Тимирязева, д. 121/3, к. 214, тел./факс: 208 80 01. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.13.000 — Книги печатные для детей. Подписано в печать 16.05.18. Формат 84*108/16. Бумага офсетная. Усл. п. л. 10,080. Тираж 3000. Заказ 0000. Отпечатано в полном соответствии с качеством предоставленного электронного оригинал-макета в типографии филиала АО «ТАТМЕДИА» «ПИК «Идел-Пресс». 420066, Казань, ул. Декабристов, 2. E-mail: idelpress@mail.ru 9