Как сделать игру в скретч
Перейти к содержимому

Как сделать игру в скретч

  • автор:

Как сделать игру в скретч

#АйДаКодить

#АйДаКодить

Онлайн Урок
Как создать игру в скретч?

вводный урок на Scratch

Этот урок рассчитан на детей от 8 лет, для прохождения нужен компьютер с установленным с браузером Chrome. Среда разработки бесплатно доступна на сайте https://scratch.mit.edu. Зарегистрируйтесь и создайте новый проект.

Пробный урок рекомендуется проходить вместе с кем-то из взрослых.

Если у вас что-то не получается — оставьте заявку, мы поможем.

Урок 3. Моя первая игра!

Творческое программирование для всех

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

Теперь, в этом уроке ты создашь свою первую игру! И убедишься, что в Scratch это просто!

Замечание: с января 2019 года на сайте Scratch доступна новая версия редактора — Scratch 3.0, который внешне немного отличается от Scratch 2.0, в котором записывался данный урок. Поэтому если возникнут вопросы, пиши их, пожалуйста, в комментариях к видео или внизу этой страницы сайта. Мы провели сравнение двух версий языка в серии прямых эфиров.

Scratch 2.0 по-прежнему можно использовать, скачав и установив программу на свой компьютер. Мы записали также видео-уроки о том, как установить Scratch 2.0 и Scratch 3.0 на свой компьютер.

Часть 1. Игра «Кот следит за мячом»

Вот эта игра (кликли по зелёному флажку и води мышкой):

Посмотри первую часть урока и вслед за учителем сделай свою игру «Кот следит за мячом»:

0:46 — ещё одно определение анимации в виде формулы: Графика + Движение = Анимация
0:59 — что такое анимация в Scratch? С помощью чего она создаётся?
2:25 — вспоминаем, как описывается сценарий анимации
3:00 — рассмотрим пример игры «Кот следит за мячом»
4:03 — рассмотрим сценарий игры «Кот следит за мячом»
5:23 — запускаем Scratch и приступаем к реализации игры: добавляем спрайты и фон
6:44 — пишем скрипт для спрайта Мяч. Используем новую команду Scratch «Перейти в указатель мышки»
8:09 — пишем скрипт для спрайта Кот. Изучаем новую команду «Повернуться к …»
11:04 — закрепляем новые изученные команды-блоки Scratch. Поэкспериментируй с параметрами этих команд
11:21 — сохраняем файл с игрой и изучаем, как это делается в оффлайн-редакторе Scratch.
12:48 — физкультминутка: потанцуй немного!
13:38 — задание: сделай свою первую игру «Кот следит за мячом» (сценарий можно подсмотреть ниже). Можешь придумать своих персонажей и фон игры и пофантазировать. Успехов!

Запишем здесь сценарий игры «Кот следит за мячом» по известной схеме:

  1. Кто? Что?
    • спрайты: Кот, Мяч
  2. Где?
    • сцена с фоном футбольного поля
  3. Как?
    • Мяч перемещается за мышкой
    • Кот поворачивается в сторону мяча (следит за мячом)

Поздравляем! Теперь у тебя есть по-настоящему своя игра! А дальше игры будут всё более сложными и интересными!

  • что такое анимация в Scratch и из компонентов состоит?
  • новую команду Scratch «Перейти в указатель мышки»;
  • новую команду «Повернуться к …»;
  • как сохранить игру в файл Scratch в оффлайн-редакторе.

Часть 2. Игра «Кот гоняется за мячом»

После изучения второй части урока ты сделаешь свою игру ещё лучше и в результате получишь новую игру — «Кот гоняется за мячом»:

0:06 — закрепляем изученные в первой части урока понятия и формулу: Графика + Движение = Анимация
0:47 — изучаем новые понятия и формулу: Анимация + Интерактивность = Игра. Что такое интерактивность? Каковы элементы интерактивности?
2:45 — элементы интерактивности в Scratch: Кто, что? с Кем, с чем? взаимодействует в проекте Scratch?
4:01 — какие команды Scratch реализуют интерактивность (из тех, которые мы уже использовали)? «Если на краю, оттолкнуться», «Перейти в указатель мышки», «Повернуться к…», «Когда щёлкнут по зелёному флажку»
5:21 — новые команды для реализации интерактивности: «Когда спрайт нажат», «Кога клавиша … нажата»
5:51 — скоро изучим новую конструкцию «Если касается … »
6:28 — итак, мы узнали, из каких компонентов строится сценарий игры в Scratch
6:53 — переходим к совершенствованию игры «Кот следит за мячом», чтобы получить новую игру «Кот гоняется за мячом»
7:08 — загружаем с компьютера на сайт Scratch файл с сохранённой игрой «Кот следит за мячом»
7:40 — учимся удалять из области написания скрипта ненужные части кода
7:54 — добавляем спрайту Кот движение с помощью блока-команды «Идти 10 шагов». Игра почти готова! Улучшаем скорость движения Кота и добавляем блок «Если на краю, оттолкнуться»
8:54 — делаем игру интереснее: реализуем реакцию Кота в случае, если он словил Мяч. Используем новую команду «Говорить… в течение … секунд» и добавляем проверку условия «Если Касается спрайта Мяч»
11:11 — задание: допиши скрипт спрайта Кот так, как показано в уроке (можно подсматривать на экран, поставив видео на паузу); после этого сохрани проект с новым именем
11:25 — сохраняем проект с новым именем, чтобы получить новую игру
12:12 — физкультминутка: гимнастика для глаз
13:31 — домашнее задание: проанализируй любую известную тебе игру и постарайся описать её сценарий по схеме Кто, что? С кем, с чем? Как? взаимодействует
14:05 — что будет в следующем уроке?

Ура! Вторая игра готова! Экспериментируй и придумывай дальше!

  • Что такое интерактивность и каковы элементы интерактивности?
  • Как описывать сценарий игры, зная элементы интерактивности Scratch?
  • Новые команды «Говорить… в течение … секунд», «Если … То…», «Касается…»

Программирование на Scratch: дети создают игры уже в начальной школе

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

Программирование на Scratch для детей

Ребенок занимается программированием на Скретч

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

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

Основы программирования на Scratch

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

Программирование в Scratch для детей

Ребенок на занятиях по программированию в Scratch

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

  • Блок программирования в Scratch: «Движение»

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

  • Блок программирования в Scratch: «Внешний вид»

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

  • Блок программирования в Scratch: «Звук»

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

  • Блок программирования в Scratch: «События»

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

  • Блок программирования в Скретч: «Управление»

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

  • Блок программирования в Скретч: «Сенсоры»
  • Блок программирования в Скретч: «Сенсоры»

Блоки этой категории «следят» за движениями игрока и меняют сценарий в зависимости от его действий. При помощи этой категории юные программисты смогут настроить таймер, отслеживать касание указателя мыши и клавиатуры, настраивать границы игрового поля и даже «научить» персонажа задавать вопросы игроку. Именно благодаря этой категории блоков в Scratch для детей доступны все инструменты для создания увлекательного сюжета.

  • Блок программирования в Скретч: «Операторы»

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

  • Блок программирования в Скретч: «Переменные»

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

  • Другие блоки в Скретч

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

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

Популярные игры, которые дети создают в Scratch

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

Компьютерные курсы Скретч для детей

Дети занимаются программированием в Scratch вместе

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

В Scratch можно не только играть против соседа по парте, но и соревноваться с искусственным интеллектом. Школьники, освоившие создание игр в Scratch, без труда разрабатывают собственных ботов и «обучают» их при помощи программного кода. На YouTube-канале преподаватели школы программирования для детей «Пиксель» рассказали, как создать простейшего робота для игры в «крестики-нолики». Проверьте, получится ли у вас сразить искусственный интеллект!

Программирование на Scratch – первый язык программирования для детей

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

Как сделать игру Flappy Bird на Scratch

Кружок «Робикс» приветствует вас на очередном уроке по разработке игр! Начинающие гейм-дизайнеры и любители заглянуть под капот, сегодня мы с вами сделаем незамысловатую, но крайне сложную игру — Flappy Bird.

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

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

Краткое описание игры

Сегодня мы попробуем воссоздать нашумевшую в свое время игру Flappy Bird.

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

Цель игры — не натолкнуться ни на одно из препятствий и добраться к финишу. Или, что вероятнее, просто набрать наибольшее количество очков на пути к нему.

Игровой процесс Flappy Bird на примере одного из двойников проекта

Как телефон с бесплатной игрой стоил $1000

Flappy Bird — проект, заточенный под смартфоны. Вьетнамский разработчик Донг Нгуен (Dong Nguyen) создал простой по механике платформер, управляемый не просто касанием экрана, но даже не требующий попадания по каким-либо нарисованным клавишам.

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

Релиз игры состоялся в мае 2013 года на обоих крупнейших маркетплейсах, однако не привлекал к себе внимания до начала 2014 года, когда неожиданно вскочил в лидеры по скачиваниям и упоминаниям в сети.

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

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

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

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

Анализ и подготовка к разработке

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

Посмотреть и попробовать в действии Flappy Bird можно, например, на вот этом сайте.

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

  • Во-первых, это сам персонаж — птичка.
  • Во-вторых, трубы, которые он будет облетать.

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

Стоит задеть любой объект — игра сразу заканчивается, то есть попытка, она же жизнь, дается лишь одна. Сколько успел набрать очков, столько и попадёт на табло.

Создаем главного героя

Начнем разработку нашей «пиратской» копии игры с центрального образа — нарисуем цыпленка или какую-то другую небольшую птицу.

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

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

Чтобы удалить ненужный объект, сначала находим его на панели спрайтов. Дальше либо жмем правой кнопкой мыши и выбираем «Удалить», либо кликаем по иконке с мусорным ведром.

Удаление спрайта в Scratch

Для создания нового спрайта воспользуемся круглой кнопкой здесь же.

Если нажать на нее, программа предложит поискать подходящее изображение в библиотеке (это большой набор готовых спрайтов, причем некоторые из них анимированные). Вдруг рисование не задастся, тогда можно будет воспользоваться этим вариантом. Пёс-космонавт, кажется, не прочь полетать!

Библиотека спрайтов в Scratch

А сейчас наведем курсор на этот кружок и в появившемся меню нажмем на кисточку — пункт «Нарисовать».

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

Когда объект имеет сдвиг от центра, анимация полета и обработка касаний работают некорректно!

Собираем птичку из кружочков и палочек в редакторе спрайтов в Scratch

Мы задействовали несколько окружностей и линий, чтобы получить свою пародию на персонажа Flappy Bird. Всё еще имеем в виду план отхода с выбором готового рисунка… Но пока оставим то, что получилось.

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

Например, чтобы сделать объект в игре в два раза меньше, достаточно указать 50 вместо 100 в параметре «Размер». Он задается в процентах от исходного.

Изменение размера спрайта на сцене в Scratch

Когда рисунок будет готов, переходите обратно на вкладку «Код» — начнем программировать!

Учим птицу падать

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

Сделаем новую переменную — «Скорость падения«. Для этого воспользуемся специальной кнопкой «Создать переменную» в соответствующей группе блоков.

Создание своей переменной в Scratch

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

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

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

Для этого пригодится блок «Перейти в xy…». Если предварительно установить героя в нужную точку, то его координаты появятся в блоке автоматически, и вручную вписывать не потребуется.

Координаты спрайта автоматически подставляются в блок

На старте игры также нужно обнулить скорость падения — ведь птица еще не начала полет. Задействуем команду «Задать… значение…» и выберем в списке нашу созданную заранее переменную.

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

По умолчанию, там выставится цифра 10. Но мы для расчета сдвига по y будем использовать «Скорость падения».

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

Скрипт на Scratch, описывающий действия персонажа в начале игры

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

Программирование полета персонажа

Дальше подключается к делу невидимая рука игрока.

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

Прыжок по сигналу

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

Добавим в скрипт блок «Если…, то…» и вставим в него условие — «Клавиша [пробел] нажата?».

Отслеживание нажатия клавиши

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

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

Анимация прыжка

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

Добавим в скрипт блок «Повернуться в направлении…». И чтобы определить, какое направление указать, покрутим наш спрайт и примеримся.

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

Управление углом поворота спрайта в Scratch

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

В имеющемся блоке поворота укажем направление для случая, когда спрайт поворачивает голову вверх. У нас это 45.

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

Задаем угол поворота спрайта в скрипте на Scratch

В начало первой последовательности дополнительно вставили блок «Повернуться в направлении [90]», чтобы на старте герой появлялся одинаково, а не так, как было в момент окончания предыдущей попытки.

Анимация снижения

Добавим где-нибудь в пустом месте области кода еще один начальный блок «Когда зеленый флажок нажат».

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

Внутрь поместим блок «Повторять пока не…». Он будет срабатывать тогда, когда наш персонаж подпрыгивает и смотрит вверх. Точнее, пока смотрит недостаточно вниз. Сейчас укажем условие — и станет ясней.

В «Операторах» возьмем блок «… > …». Туда вставим специальную переменную «Направление« (она находится в группе «Движение») и число, которое мы запомнили ранее.

В нашем случае вышло: «Повторять, пока [направление] не станет больше [120.

В этом промежутке мы будем производить небольшой поворот по часовой стрелке. Для этого есть специальный блок — «Повернуть на… градусов». Попробуем на 3.

Блок поворота спрайта по часовой стрелке в Scratch

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

Анимация на данном этапе должна уже работать полностью:

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

Если что-то пошло не так, проверьте все блоки и условия, в том числе «больше/меньше» на последнем этапе. Сравните с рекомендациями из инструкции. Если указали < вместо >, замените на такой же блок с противоположным знаком.

Создание игрового пространства

Итак, птица есть. Она летает и подпрыгивает, когда мы нажимаем определенную клавишу. Что еще нам нужно? Не хватает преград на пути! Давайте добавим трубы.

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

Добавляем первое препятствие

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

Снова идем в панель спрайтов и нажимаем «Нарисовать» (пункт с кисточкой).

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

К одной фигуре добавим вторую, поменьше. Теперь больше похоже на трубу.

Рисование прямоугольников в Scratch

Чтобы передвигать по холсту вместе два объекта (или более), воспользуемся инструментом «Выбрать» (выглядит как курсор). Щелкнем левой кнопкой по одному из прямоугольников, зажмем клавишу Shift и снова щелкнем мышью — по второму из них. Теперь, когда выбраны оба, подтянем их к середине и опустим в нижнюю часть области рисования.

Можно еще преобразовать несколько фигур в единый объект — для этого используется команда «Группировать». Но у нас всего два объекта, с ними легко управляться и так.

Не снимая выделения, нажмем поочередно кнопки «Копировать» и «Вставить». Они находятся на панели рядом с холстом. Получим вторую копию трубы, которую нужно развернуть другим концом к центру рабочей зоны. (Чтобы установить фигуру строго вертикально, зажмите Shift во время поворота.)

Дублирование фигур в редакторе спрайтов Scratch

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

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

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

Клонирование объектов

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

Установим начальный блок — «Когда зеленый флажок нажат» — и приставим к нему бесконечный цикл «Повторять всегда». А повторяться у нас будет специальная команда — «Создать клон [самого себя]».

Блок для создания клона выбранного спрайта в Scratch

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

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

Используем блок «Перейти в xy…». По умолчанию, в нем выставляются текущие координаты спрайта на сцене.

Скрипт, управляющий спрайтом с трубами

Теперь задействуем другой стартовый блок и соберем второй скрипт для трубы. Нам понадобится «Когда я начинаю как клон».

Расположим его где-нибудь в свободном месте области кода и добавим два блока: «Показаться» и «Спрятаться».

Первый из них — в новый скрипт. Это позволит нашим клонам появляться на экране. А второй — в первую цепочку блоков, в самое начало. Чтобы скрыть трубу-оригинал.

У одного спрайта в Scratch может быть несколько скриптов

Предварительная подготовка препятствий окончена — пора запустить прокручивание игрового поля.

Сдвигаем трубы навстречу птице

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

Добавим блок цикла «Повторять пока не…», а внутрь него — «Идти… шагов».

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

Условием прекращения цикла станет выход объекта за левый край. Определим это по его положению на горизонтальной оси.

Вставим оператор-условие «… …», в котором используем специальный счетчик — «Положение x«. В качестве ограничения, с которым будем сравнивать текущую позицию, укажем значение, противоположное стартовому. В нашем случае, к примеру, в начале игры труба появляется в точке 267, значит крайняя левая координата будет равна -267.

Программирование прокручивания игрового поля

Если на этом этапе запустить игру, то начнется экшен! Новые экземпляры труб будут появляться, ехать через весь экран и застревать слева. Неплохо, надо только добавить в скрипт клонов блок «Спрятаться», чтобы по достижении края они исчезали с экрана.

Улучшаем игровое поле

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

Для этого нам потребуется внести небольшое изменение в алгоритм действий клонов. Каждый из них будет иметь разный сдвиг по вертикали от исходной точки. Можно использовать блок «Перейти в xy…» или «Установить y в …».

Обновленный скрипт на Scratch с блоком сдвига на случайное расстояние

В качестве x (если возьмете первый из них) устанавливается то же значение, что у оригинального спрайта. А вот y (в обоих случаях) мы будем получать с помощью так называемого рандомайзера — генератора случайных чисел. Таким образом, координата по оси y будет отличаться у каждого следующего клона.

Теперь проведем тестовые запуски и подкрутим параметры на свой вкус. Размеры экрана и объектов у нас с вами отличаются, потому устанавливайте такие числа, которые лучше сработают в вашей конкретной реализации.

На что мы можем повлиять:

  • Паузы между появлением новых труб. Если от одного ряда до другого далековато, то генерируем их чаще. Мы снизили время ожидания с 3 секунд до 1,8.
  • Вертикальное расстояние для пролета птички. Если тесно, то меняем «костюм» спрайта — растаскиваем трубы вверх и вниз. Как вариант, уменьшаем главного героя.
  • Скорость прокрутки игрового поля. Трубы могут двигаться быстрее или медленнее — как вам больше захочется. Мы сбавили адреналина и приосадили их. Теперь они двигаются не по 10, а по 7 шагов за раз.

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

Обработка столкновения с трубами

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

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

У одного спрайта в Scratch может быть и три, и более скриптов

Прицепляем и вкладываем нужные блоки. Сначала берем цикл «Повторять всегда», а в него идет «Если…, то» с условием «Касается [Трубы]?» (так мы поименовали спрайт с этим объектом).

После этого воспользуемся специализированным блоком «Передать [сообщение]». Он извещает все скрипты о чем-нибудь. У нас произошло столкновение с преградой, то есть конец игры. Так и запишем.

Создание нового оповещения в программе на Scratch

После этого приостановим все процессы, которые происходят у нашей птицы: она застынет в том месте, где была. Сделаем это добавлением блока «Стоп [другие скрипты спрайта.

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

Обработка столкновения с птицей

Теперь внесем правки в скрипты труб. Необходимо принять сообщение о конце игры и отреагировать на него.

Начнем новую цепочку блоков в области кода. Ее стартом будет «Когда я получу [сообщение]».

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

А действие будет одно — остановка всех процессов, запущенных здесь. Используем такой же блок, как у птицы, — «Стоп [другие скрипты спрайта.

Получение и обработка оповещения в другом спрайте в проекте на Scratch

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

Начисление очков игроку

Наша версия Flappy Bird уже очень похожа на настоящую, в нее вполне можно играть. Но не хватает табло с заработанными очками. Более того, и числа, которое там можно было бы показать, у нас пока тоже нет. Этим и займемся.

Создадим новую переменную — «Очки«. И, пока мы здесь, уберем галочку напротив «Скорости падения«, чтобы на игровом поле она не выводилась.

Вы знали, что внешний вид счетчиков в Scratch можно менять и перемещать их по сцене? Подтяните мышкой «Очки» в любое место, куда захочется. В оригинальной игре, например, счет выводился в центре. А по клику правой кнопкой можно переключить формат отображения на «Крупный вид».

Переключение внешнего представления переменной на игровом поле в Scratch

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

Используем блок «Задать… значение…», где из списка существующих переменных выберем «Очки«. Ноль в качестве начального числа нам вполне подходит, его не меняем.

Задаем начальное значение количества очков в игре

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

Значит спрайт с трубой, пролетая мимо нашего героя, должен засчитываться как плюс один к значению переменной «Очки». Разумеется, если его не задели.

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

Отобразили и погоняли по экрану спрайт с трубами

Создадим еще одну ветку скрипта, снова начав с блока «Когда я начинаю как клон», и за ним следом закинем «Ждать до…». В этот блок добавим условие, при котором будет пора изменять счет игры. Состоит оно в том, что труба должна сдвинуться левее определенной позиции по горизонтали.

Возьмем оператор «… …» и зададим величины для сравнения. Слева будет «Положение x«, а справа — найденная опытным путем граница. Мы вписали -220.

Остается только увеличить счет. Используем соответствующий блок — «Изменить [Очки] на [1.

Game Over

Ура, наша игра готова! Птица летит, преграды вырастают на ее пути, она маневрирует… и врезается во второй или третий по счету ряд труб. Наша игра получилась очень похожей по сложности на оригинальную Flappy Bird, ведь там тоже мало кому удавалось долго продержаться.

Игровой процесс реализованной нами копии Flappy Bird

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

Для перехода в редактор и создания надписи воспользуемся пунктом «Нарисовать». Он находится в меню на панели фонов.

Кнопка для перехода в редактор и создания своего фона для сцены в Scratch

А там ждут уже знакомые инструменты, при помощи которых можно изобразить буквы от руки, собрать из фигур или задействовать инструмент «Текст».

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

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

Проверяем, что выбран теперь не спрайт, а панель фонов, и добавляем стандартный стартовый блок — «Когда зеленый флажок нажат».

К нему прицепляем специальную команду из группы «Внешний вид» — блок называется «Переключить фон на…». Выбираем там первый из предложенных. То есть при старте игры у нас будет включаться белый лист без надписей.

Рядом располагаем второй скрипт, тоже короткий. Начальным для него будет блок «Когда я получу [сообщение]» с выбранным оповещением о завершении игры, а вторым и единственным — «Переключить фон на [фон 2.

Два скрипта для смены фона в Scratch

С большими красными буквами наш Flappy Bird стал еще беспощадней.

Game Over в игре Flappy Bird, созданной на Scratch

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

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

Курсы Робикс, в которых изучается этот материал

Дополнительные материалы к статье

  1. Сайт программы Scratch ⤴
  2. Видеоверсия инструкции ⤴
  3. Блоки движения в Scratch
  4. Условия в Scratch
  5. Как создать фон в Scratch

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *