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

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

  • автор:

Как сделать гравитацию в Scratch?

В простейшем случае вам потребуется в скриптах спрайта уменьшать координату у на некоторую константу. Сделать это можно в бесконечном цикле. Для контроля столкновения с предметами добавьте в цикл проверку условия “если касается ”, и в этом условии увеличьте положение y на ту же константу. Таким образом, при касании поверхности, ваш спрайт перестанет падать. Базовая имитация гравитации готова, далее можете попробовать добавить ускорение при падении и замедление при взлете

Другие вопросы посетителей из раздела «Обучение Scratch»:

Программное обеспечение

Оборудование

Служба поддержки
Размещение рекламы
info@sotoguide.ru

Копирование материалов допускается только при указании источника

Как сделать игру 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

Как сделать игру Динозаврик из Google Chrome на Sratch

Кружок «Робикс» подготовил новый урок по разработке игр для начинающих. Его результатом станет игра Динозаврик из Google Chrome, в которую можно играть даже без интернета! Эта несложная игра будет очень полезна будущим геймдизайнерам и не только.

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

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

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

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

Приступаем к разработке игры Динозаврик из Google Chrome на Scratch

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

В данной инструкции мы будем разбирать только те функции и блоки, что потребуются для реализации Динозаврика из Google Chrome.

Необходимо будет спрограммировать:

1. Персонажа — Динозаврика.

2. Сцену — окружающее Динозаврика пространство.

З. Землю — то, по чему будет двигаться персонаж.

4. Кактусы — препятствия на пути.

Создаем игру на Scratch

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

удаление кота на Scratch создание фона

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

заполнение фона цветом на Scratch

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

Приступаем к созданию самого Динозаврика. Открываем библиотеку и ищемчто-то похожее на нужного нам персонажа.

выбор персонажа для создания игры

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

уменьшение созданного объекта или персонажа на Scratch

Анимируем персонажа

Для дальнейшей анимации персонажа необходимо перейти в «скрипты«, где необходимо выбрать «События» и «когда щелкнут по (изображение зеленого флага)«.

анимация созданного персонажа на Scratch

После выбрать «Управление» и «всегда (стрелка вверх)«

создание цикла, повторение действий персонажа

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

создание цикла, первоначальных действий

Учим Динозаврика из Google Chrome прыгать

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

выстраивание координат для объекта или персонажа

Для более реалистичного прыжка Динозаврика необходимо написать внутреннюю гравитацию игры. Под имеющимися координатами создаем цикл: «Управление«, «всегда…», в который добавляем комбинацию «Управление«, «если. то…». Выбираем «Сенсоры«, «клавиша (…) нажата». При нажатии на клавишу, которую выберем в пустом окошке, Динозаврик будет прыгать.

создание цикла для прыжка

Гравитацию можно создать посредством выбора «Данные» и «создать переменную», где она будет храниться. Называем переменную «гравитация», перемещаем в поле справа и задаем значение — 15. Это число отвечает за высоту прыжка. Около «гравитации» в квадратике убираем галочку, таким образом, ее значение не будет отображаться у пользователя во время игры. После выбираем «Управление» и цикл «повторить 10», выставляем его сразу после значения гравитации и меняем число на 31. В случае, если вы задали другое значение гравитации, то умножаете это число на два и прибавляете единицу.

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

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

Создаем препятствия Динозаврику

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

Чтобы создать иллюзию движения дерева переходим в «События» и создаем новый цикл, выбрав «когда щелкнут по (изображение зеленого флага)«. Далее «Внешность» и «спрятаться», «Управление» и «всегда (стрелка вверх)«. Внутрь последней команды помещаем «создать клон себя самого«, под которую помещаем «ждать 1 секунд».

создание клонов препятствий в игре

Для начала, необходимо задать интервал, так препятствия будут появляться в разное время. Выбираем «Операторы» и «выбрать случайное от 1 до 3».

создание интервала для времени появления препятствий

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

перемещение объекта или препятствия

После, необходимо закрепить его на горизонтальной поверхности. Щелкаем на «Движение» и «положение х«, которое крепим слева от значка меньше.

перемещение препятствия или объекта в игре Динозаврик из Google Chrome на Scratch

Затем блок «повторять пока не …» добавляем «Движение» и «изменить х на -10″.

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

цикл для исчезновения препятствий

Завершение игры Динозаврик из Google Chrome на Scratch

В правом нижнем углу, в отделе «спрайты» нажимаем на Динозаврика и ищем цикл с координатами. В него добавляем «Управление» и «если …, то», туда вставляем «Сенсоры» и «касается … «, выбираем среди предложенных наш объект.

разработка цикла для касания припятствия

После этого создаем «Событие» и «передать новое сообщение». В графе «новое сообщение» пишем, что «Игра окончена«.

сообщение об окончании игры Динозаврик из Google Chrome на Scratch

Нажимаем на «если…» правой кнопкой мыши и дублируем команду, вставляем ее после блока «изменить гравитация на -1″.

подробный цикл для дублирования команды в игре Динозаврик

Создаем новый цикл, чтобы была реакция на все предыдущие действия. Выбираем «События» и «когда я получу Игра окончена«, «Управление» и «стоп другие скрипты спрайта«.

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

цикл для реакции на столкновение с препятствием

Создание сообщения об окончании игры на экране

Нажимаем на «сцену» в левом нижнем углу и создаем второй фон. Кликаем на имеющийся фон и дублируем его.

дублирование фона в игре

На дублированном фоне выбираем «Т» — текст и пишем «GAME OVER. ». Для того, чтобы запрограммировать возникновение этой надписи, необходимо перейти в «скрипты» и создать новый цикл. «События» и «когда я получу Игра окончена«, «Внешность» и «сменить фон на фон2«. В таком случае, чтобы при запуске игры не было надписи «GAME OVER. », также необходимо создать цикл. «События» и «когда щелкнут по (изображение зеленого флага)«, «Внешность» и «сменить фон на фон1″.

создание надписи в игре Динозаврик из Google Chrome на Scratch

Создание очков для игры

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

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

В разделе «спрайты» выбираем Динозаврика. В нем создаем отдельный цикл. «События» и «когда щелкнут по (изображение зеленого флага)«, «Данные» и «задать Очки значение 0″, таким образом, в начале они всегда будут равны нулю. Чтобы в процессе игры они увеличивались, добавляем «Управление» и «всегда (стрелка вверх)«, под этой командой создаем «Данные» и «изменить Очки на 1″. Для граммотного подсчета очков необходимо также добавить «Управление» и «ждать 0.1 секунд».

создание цикла для изменения количества очков

Усложняем прохождение игры Динозаврик из Google Chrome

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

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

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

добавление скорости персонажу или объекту

Чтобы скорость изменялась с определенным течением времени, необходимо задать ее и в начале игры. В цикл, «когда щелкну по (изображение зеленого флага)» добавляем «Данные» и «пускай Скорость значение 10″.

обозначение скорости в игре Динозаврик

И также, для ее изменения с каждым пройденным деревом, в цикле «когда я начинаю как клон», после «повторить пока не…» выбираем «Данные» и «изменить Скорость на 0.5″.

изменение скорости в игре Динозаврик из Google Chrome на Scratch

Итоги

Итак, мы закончили создание игры Динозаврик из Google Chrome на Scratch. Однако это не все. Вы можете дорисовать в сцене еще какие-то вещи, заменить персонажа и объекты, поменять высоту прыжка или скорость. Удачи в создании игр! Фантазируйте и воплощайте свои идеи!

С процессом разработки других игр на Scratch можно ознакомиться здесь.

Как сделать гравитацию в Scratch | Scratch программирование для детей | Игры Scratch | Курс Scratch

Иконка канала Пиксель - школа программирования для детей

Сегодня в рамках онлайн-курса программирования для детей узнаем, как сделать гравитацию в Scratch. Мы запрограммируем персонажа в редакторе Scratch 3.0 на прыжок с учетом гравитации. А затем напишем скрипт к движениям героя. Давайте скорее начинать! 00:00 Вступление 00:26 Что такое гравитация в Scratch (Скретч) 00:56 Запускаем Scratch (Скретч) 01:00 Создаем переменную в Scratch (Скретч) 01:30 Программирование в Scratch (Скретч) 01:54 Проверка движения персонажа в Scratch (Скретч) 02:10 Проверка условий движения персонажа в Scratch (Скретч) 02:48 Проверка гравитацию в Scratch (Скретч) относительного персонажа 03:00 Программируем в Scratch (Скретч) персонажа на прыжок 03:30 Проверка прыжка героя и гравитации в Scratch 03:40 Заключение Нужен наставник? Записывайтесь на онлайн-уроки программирования в школе «Пиксель»: �� Наш сайт: https://clck.ru/3398fm �� Курс по программированию на Scratch: https://clck.ru/3398gA �� Вконтакте: https://vk.com/clubpixel_ru �� ТикТок: https://www.tiktok.com/@clubpixel.ru �� Телеграм: https://t.me/pixelstudy �� Youtube: https://www.youtube.com/c/clubpixel Подписывайтесь на канал и пишите в комментариях, какое еще видео по Scratch вы хотели бы увидеть! Возрастное ограничение видео 6+

Показать больше

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

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

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