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

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

  • автор:

Делаем игру Марио из Dendy на Scratch

Новый урок и рассказ о новой игре! Сегодня мы начнем программировать легендарную игру Марио на Скретч. Обратите внимание, что описание первой части программного кода для Mario Bros. будет координально отличаться от второй части игры. Сделано это для повторения пройденного материала и применения некоторых элементов на втором уроке по детскому программированию в Scratch. Вначале нужно загрузить спрайты — делаем это самостоятельно, без помощи пап, мам и учителей! Вторым шагом стараемся написать движения для Марио, гриба и врага самостоятельно и только если совсем все не получается читаем подготовленный материал. Что же надо реализовать:

  • Марио должен бегать и прыгать;
  • Враг ходить от трубы (именно от трубы, а не от края) до края экрана взад-вперед;
  • Гриб должен появляться при ударе Марио головой по камн и спрыгивать вниз;
  • Из трубы должен появляться цветок-убийца, готовый съесть нашего Scratch героя

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

  • скачать персонаже Mario Turbo
  • загрузить фон игры

Когда графическая часть будет загружена на компьютер начинаем подгружать ее в среду разработки Scratch. Напоминаю, что загрузка персонажей и фона в среде разработки Скретч осуществляется через кнопку показану на фотографии ниже:

Загружаем спрайты в среду разработки Скретч для Марио

Пишем программный код для героя Марио

Чтобы заставить Марио двигаться мы будем использовать старые приемы:

  • движение вправо-влево;
  • прыжок вверх-вниз.

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

img

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

Библиотека (англ. library) — это набор готовых функций, классов и объектов для решения каких-то задач.

Ну а теперь давайте познакомимся с модульным программированием на практике. Для особо любопытных будет полезна статья о разработке фонарика для смартфонов на базе Андройд в AppInvector (приступить к чтению урока). В этом уроке явным образом используется и подгружается библиотека — это уже по серьезному! Ну а мы продолжим создавать собственный набор программ для игры:

  1. переходим в раздел: Другие блоки;
  2. нажимаем: Создать блок;
  3. даем название блоку;
  4. нажимаем: ОК.

Создаем мини библиотеку для скретч

А теперь самое интересное — добавляем стандартный набор блоков Скретч для движения спрайта вправо-влево, но делаем это через условие: ЕСЛИ … ТО … ИНАЧЕ

Движение спрайта через условие в Scratch

Далее добавляем из раздела: Движение два блока:

  • Повернуться в направлении (выбираем направление в свойствах блока)
  • Идти 10 шагов (меняем шаг на 2)

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

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

Заключаем код в вечный цикл, работающий на протяжении всей игры

Теперь, чтобы заставить Марио двигаться не нужно добавлять множество блоков, достаточно разместить один блок вправо-влево:

Вызываем команду из библиотеки Скретч

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

Прыжок через библиотеку команд Scratch

img

ВНИМАНИЕ!
Посмотри на модули: Прыжок и Вправо-влево. Обрати внимание, что они отличаются. В чем отличия кода? Подумай почему для прыжка не будет работать порядок написания кода блока: Вправо-влево?

САМОСТОЯТЕЛЬНАЯ РАБОТА:

Допиши программный код Скретч так, чтобы у Марио происходила смена костюмов и было видно, что герой движется.

Код для движения врага Марио

Теперь оживим первого врага Марио и сделаем это обычным способом:

код движения для врага Марио

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

  1. Первый блок устанавливает объект в начальную точку;
  2. Далее вводим Цикл постоянного движения на протяжении всей игры Марио;
  3. Говорим объекту перемещаться со скоростью два шага;
  4. Указываем простое условие- Если касается края оттолкнуться;
  5. Добавляем сложное условие, по которому при касании трубы объект поворачивается в обратном направлении;
  6. Итоговый код написан.

Надеюсь всем все понятно и можно продолжить дальше!

Программируем выползание цветка из трубы

САМОСТОЯТЕЛЬНАЯ РАБОТА:

Попробуйте сами написать код для выползания цветка из трубы, но только так, чтобы движение было плавным — как в прыжке (подсказка!). Не забудьте чтобы цветок-хищник ждал какое-то время. А лучше, чтобы время все время было случайным значением! И конечно, чтобы цветок прятался за трубу, делается это с помощью блока:

Перейти на задний слой

Пишем код для гриба дающего силу

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

Прячем граб суперсилы в игре Марио

Теперь напишем условие, при котром Марио ударяет в гриб и он вылезает на поверхность, ну и конечно продолжает движение. но перед написанием этого года протестируем его работу по нажатию кнопки ПРОБЕЛ. И только потом поместим полученный результат внутрь условия взаимодействия Марио и Гриба.

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

Добавляем условие взаимодействия спрайтов в Скретч:

Условие взаимодействия спрайтов в Скретч

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

Я рекомендую сразу немного изменить код, ведь когда грип спрыгнет и столкнется с Марио мы наделим героя супер силой, а потому придется еще раз использовать код: КАСАЕТСЯ МАРИО. Поэтому опишем первое взаимодействие объектов через цвет шапочки героя:

Меняем условие для Марио

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

Модернизируем код движения Марио

Материал в стадии дописывания …

Как сделать игру «Марио» в «Скретч»

Выпущенная в 1985 году игра Super Mario Bros является, вероятно, самой популярной игрой всех времен и точно главным проектом Nintendo.

618 показов
2.4K открытий

Марио — игра-платформер, в этом жанре герой должен прыгать по платформам в 2D-мире и собирать очки. Пройдя с нами до последней буквы этой статьи-руководства, вы создадите своего Марио в визуальной событийно-ориентированной среде «Скретч». Интересно? Тогда давайте приступим!

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

Другой вариант создания игры «Марио» в Scratch можно посмотреть на нашем YouTube-канале
Шаг №1. «Спрайты» и фон

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

Установлена и настроена среда программирования Scratch может быть по-разному. Самый простой вариант — воспользоваться онлайн-версией.

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

Писать код «Марио» на «Скретч» начнем с создания фона и графических объектов (игровых ассетов — на языке геймдева): персонажа, препятствий, наград и тому подобного.

  • в правом нижнем углу нажмите на плашку «Сцена» (Stage) -> «Выбрать фон» (Backdrops)-> «Загрузить фон» (Upload backdrops);
  • загрузите наш файл «Assets»;
  • загрузите таким же образом файл «sky» .

Если плашка «Сцена» у вас в активном состоянии, то есть вы кликнули по ней левой кнопкой мыши, то слева вам доступны загруженные в проект фоны, в том числе и Assets. Кликните по маленькой иконке Assets, чтобы посмотреть, с чем мы работаем. Закройте демонстрационный материал в центре окна Scratch, чтобы увидеть Assets не только в правом большом окне, но и в центральной, рабочей области. Видите?

Запишите вашего ребенка на курс программирования Scratch онлайн в школе Pixel. Это интересно и развивает интеллект.

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

Теперь взгляните левее плашки «Сцена». Там будет другое поле — «Спрайт» (Sprite). На нем по умолчанию доступен спрайт котик. Нажмите на него. Слева вы увидите маленькие иконки «Костюмов» (Costumes). «Костюмы» — это различные положения, которые может принимать наш спрайт в движении. Если «Спрайт» добавлен на «Сцену», то он будет отображаться поверх всех изображений всех фонов (backdrops) «Сцены».

Чтобы лучше это понять, давайте добавим нашему спрайту-котику (он-то и будет нашим Марио) шляпу знаменитого итальянского водопроводчика. Для этого достаточно выбрать самый верхний инструмент слева от центральной области. Кликните по кепке Марио и нажмите «Копировать» (Copy) в горизонтальном меню сверху. Теперь вы можете вставить нужное изображение на любом спрайте, если он относится к нужной «Сцене».

А сейчас поработаем с фоном. Переключитесь на фон sky. Сейчас у нас только заливка голубым цветом. В фоне «Assets» скопируйте белое облако и вставьте его несколько раз в верхней части фона sky. Получилось?

Шаг №2. Создаем уровни

Все получается? Смелее! Если мы создадим Марио, то сумеем сделать любую игру-платформер на «Скретч». На плашке спрайтов, где у нас находится персонаж, создайте новый спрайт. Назовите его «Фон» или Background. Этот спрайт будет важной частью игры. Каждый его костюм будет представлять собой новый уровень игры. Вы можете создать сколько угодно спрайтов, но мы в нашей игре пока сделаем только пять. Просто копируйте объекты из нашего рабочего файла Assets в очередной уровень – так и создаются новые локации в игре «Марио».

Можно назвать уровни Screen-1, Screen-2 как здесь или Уровень 1, Уровень 2 и так далее. Теперь подготовим первый код для нашей игры. Его еще нельзя будет запустить, но в комплексе с другими командами он заработает. Кликните по спрайту «Фон» и переключитесь на вкладку «Код» (Code). Вы увидите справа разноцветные элементы, которые можно выделять мышью и переносить в центр, закрепляя один за другим. Эти «кирпичики» на языке Scratch называются блоками и служат для создания сценариев, которые оперируют с добавленными нами изображениями, музыкой и другими составляющими программы. Добавьте блоки Scratch таким же образом, как показано на скриншоте:

В русскоязычном интерфейсе все будет так же, например, блоку broadcast будет соответствовать блок «передать». В некоторых блоках нужно установить аргументы, то есть дополнительные параметры того, как они должны будут себя вести. Если вы называли уровни игры на русском языке, то в аргументе блока switch costume (изменить костюм на) поставьте «Уровень 1».

Шаг №3. Добавляем блок с «?»

Вы могли заметить, что мы оставили немного места между блоками, когда создавали «Уровень 1» (Screen-1). Некоторые из этих промежутков мы дополним блоком со знаком вопроса. Помните, Марио надо было прыгать, и он головой выбивал какой-нибудь случайный бонус?

Так как ведет себя блок «?» иначе, чем другие, то ему нужен собственный спрайт. В игре нужно симулировать состояние блока со знаком вопроса до и после того, как Марио его «посмотрел», поэтому в спрайте у нас будет два костюма: желтенький блок со знаком вопроса и без знака вопроса.

Напишем код для блока. Кликните на нужный спрайт и только после этого переключитесь на вкладку «Код» (Code). Воспроизведите приведенную ниже структуру у себя. За появление блоков на разных уровнях отвечают условия «if» из самой длинной последовательности команд. Когда выполняется первое условие, активируются координаты X и Y, отвечающие за появление спрайта со знаком вопроса в первом уровне.

Во втором условии обрабатывается уже второй уровень игры и так далее. Этот код вы уже можете тестировать, чтобы убедиться, что идете в правильном направлении. Меняйте координаты X и Y, затем запускайте код зеленым флажком над правым экраном.

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

Язык Scratch ваш ребенок может изучить курсах программирования Scratch в школе Pixel, добро пожаловать!

Как сделать убойную РПГ на Scratch, смотри в нашем видео
Шаг №4. Сделаем спрайты обнаружения препятствий

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

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

Например, если мы касаемся передней линией фонового объекта, то можем установить значение right touch в позицию 1. Так Марио поймет, что нечто находится перед ним. Если установим значение 0, значит перед ним ничего не находится. Посмотрите на скриншоты ниже и воспроизведите логику для каждой стороны персонажа. Будьте внимательны, переключайтесь между спрайтами для формирования команд.

(Спрайты правой, левой, верхней и нижней стороны можно скачать или нарисовать самостоятельно в редакторе).

Шаг №5. Передвигаем Марио стрелочками взад-вперед

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

Всего этого мы сможем добиться с нашими спрайтами обнаружения препятствий из предыдущего шага. Нам понадобится как-то удостовериться, что спрайт Марио анимирован по мере движения с помощью своих костюмов (помните, у нас в этом спрайте два положения персонажа?). Уровень 1 (Screen-1) — персонаж должен начинать в правильной точке, глядя в правильном направлении. Приступим!

Один из методов запрограммировать движение персонажа в Scratch состоит в том, чтобы переходить на новый уровень каждый раз, когда он достигает правой границы предыдущего. Мы решим проблему постоянной проверкой координаты X нашего Марио. Если оказалось, что он коснулся правой границы экрана, то включается broadcast с текстом «Next Screen». Таков будет принцип нашей программы.

Можно сделать и иначе. Весь «мир» делаем одним большим костюмом спрайта «Фон» (Background) и сдвигаем координату X этого спрайта налево по мере того, как наш герой продвигается вперед. Последний способ — остроумное и изящное решение, но заставит в будущем постоянно редактировать ваш проект с добавлением новых уровней. Причем, написать придется гораздо больше, чем если бы вы просто сделали движение с помощью подхода, который мы описали первым. Думайте о расширяемости своих проектов. Программист — это человек, который выбирает наилучший путь.

Код, состоящий из блоков Scratch, который у нас ниже представлен, все равно будет довольно объемным, хотя и реализует первый подход. Хорошей практикой является комментирование. Новый комментарий можно добавить, щелкнув по тому или иному блоку правой кнопкой мыши и нажав «Add Comment». Переключившись на спрайт нашего котика «Марио» (помните, мы надевали на него шляпу?), добавьте блоки движения персонажа из скриншота ниже.

Шаг №6. Добавляем «монетки», которые собирает Марио

Сейчас мы займемся созданием счета очков в игре. Точно так же, как мы добавляли блоки со знаком вопроса, распределите в уровнях новый спрайт – монетки. Изображение монет можно взять из нашего фона (backdrop) Assets. Как и раньше, мы будем «пролистывать» уровни и клонировать спрайт для них. После этого добавим блок с постоянной проверкой: касается Марио данного клона монетки или нет. В зависимости от этого прибавляем счет. Можно создать несколько костюмов для спрайта монетки и анимировать ее, чтобы она слегка колебалась в воздухе. Переключитесь на спрайт монетки, кликнув по ней и добавьте внутрь блоки в соответствии со скриншотом ниже.

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

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

Сделаем прототип игры уже на первом занятии. Оставьте заявку в форме ниже. Напишите в Telegram

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

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

Заниматься на курсе может даже 7-милетний ребёнок

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

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

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

Как проходит обучение на курсах?
Подготовка к занятию

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

Переключение внимания

Мы понимаем, что детям сложно отсидеть все 1,5 часа разом, поэтому проводим физ.минутки, играем в игры, решаем головоломки. В общем, ненадолго переключаем внимание.

Работа над проектом

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

Почему Scratch подходит для детей?

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

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

2. Визуальное программирование: Scratch использует блочное программирование, что позволяет детям видеть результаты своей работы непосредственно на экране. Это помогает им понять, как их программы работают и как они могут изменять результаты.

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

4. Взаимодействие: Scratch предоставляет возможность детям делиться своими проектами с другими пользователями и получать обратную связь. Это создает сильное сообщество, где дети могут учиться друг у друга и вдохновляться работой других.

Как сделать игру Танчики на Scratch

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

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

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

Полезные ссылки из нашей базы знаний:

  • Интерфейс и инструменты Scratch
  • Что такое спрайт?
  • Блоки движения
  • Условия в Scratch

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

Немного о Танчиках

Первая версия игры вышла в 1985 году в Японии и называлась она «Battle City». Уже больше 35 лет назад! Эта игра была для приставок, ее компьютерная версия вышла спустя несколько лет. Однако «Battle City» не пользовалась популярностью на родине. Зато в России – это настоящий символ эпохи. В 90-е годы появилась «пиратская» версия, сделанная в Китае – «Tank-1990», именно она произвела фурор и получила народное название «Танчики». С тех пор как вышла первая версия, разработчики перевыпускают улучшенные версии игры и насыщают ее дополнительными функциями. Забавно, что «Танчики» сохранили свой интерфейс, даже в самых последних современных версиях, где по карте передвигаются 3D танки, мы узнаем прототип 1985 года. Игрок смотрит на поле боя сверху вниз, а на экране – танки разных команд и препятствия.

Интерфейс игры Танчики в 1980-е Интерфейс игры Танчики в 2010-ом

Создаем первый танк

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

Кнопка с котом

Галерея спрайтов Scratch

Но мы нарисуем танк сами. Он может быть каким угодно: с длинным дулом или коротким, ярким или нейтральным, с люком и без.

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

Танчик на Scratch

Центр рисунка и поля Scratch

Обязательно проследите, чтобы центр вашего танка — синий плюсик- сходился с центром поля (Рис. 5), потому что иначе танк потеряется в пространстве, запутается, а мы вместе с ним.

Давайте закончим оформление нашего танка настройками. На панели спрайтов есть есть графа для ввода, сейчас там написано «Спрайт 1». Мы предлагаем сразу изменять имена, чтобы в процессе программирования не путаться. Мы назовем наш спрайт – Танк 1, можно использовать свое имя и имя друга. Если вам покажется, что танк слишком большой и занимает много места на сцене, на этой же панели есть настройка размера. Базово это значение 100 (%), но мы предлагаем уменьшить до 50.

Когда рисунок будет готов, переходите во вкладку «Код» (сверху слева).

Настройки танка

Давайте закончим оформление нашего танка настройками. На панели спрайтов есть есть графа для ввода, сейчас там написано «Спрайт 1». Мы предлагаем сразу изменять имена, чтобы в процессе программирования не путаться. Мы назовем наш спрайт – Танк 1. Но вы можете использовать свое имя или имя того, с кем вы хотите сыграть.

Если покажется, что танк слишком большой и занимает много места на сцене, на этой же панели есть настройка размера. Базово значение 100 (100%), но мы предлагаем уменьшить до 50.

Когда рисунок будет готов, переходите во вкладку «Код» (сверху слева).

Учимся управлять танком

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

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

Начало кода. Первый блок.

Далее: группа «Управление» и перетаскиваем блок «Повторять всегда».

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

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

Выбор условия в блоке Scratch

Стрелка вверх – это движение вперед. Переходим в группу «Движение» и выбираем «идти 10 шагов». Получилось, что если «клавиша стрелка вверх нажата», то наш танк «идет 10 шагов». Повторяем условие для всех направлений движения. Обратите внимание, что для движения назад значение должно быть отрицательным: «идти -10 шагов», танк как будто отталкивается назад. Для движения в стороны выбираем блоки «повернуть на 15 градусов». У нас получилась такая структура (Рис. 8.).

Код движения танка

Для скорости вы можете изменить значения в блоках: чем больше цифра, тем быстрее двигается танк.

Направление движения

Уже на этом этапе, вы можете нажать на зеленый флажок и покрутить танк с помощью стрелок. Если мы все сделали правильно – танк зашевелился по сцене. Он отлично крутится в стороны, а вот вперед-назад ходит как-то странно, верно? Давайте разбираться.

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

Если нажать на кнопку «Направление» в панели спрайтов, то вы увидите круг и стрелку. Стрелка показывает, куда на самом деле смотрит спрайт. Сейчас он смотрит по диагонали вправо, поэтому для него вперед и назад – это движение по диагонали, несмотря на то, что дуло смотрит совсем в другую сторону (Рис. 9.).

Направление танка

Как же это исправить? Нам нужно снова перейти во вкладку «Костюмы», выделить танк с помощью стрелки и покрутить его так, чтобы синхронизировать направление дула и стрелку на кружке справа, как показано на Рис. 10. Готово! Теперь танк правильно двигается во все стороны.

Настройка направления Танчика на Scratch

Поле боя

Танку необходима база. Давайте займемся сценой и нарисуем препятствия (стены и лабиринты).

Справа от панели спрайтов находится панель «Сцена», щелкаем на нее. Сверху место вкладки «Костюмы», появилась вкладка «Фон», выбираем ее и автоматически перемещаемся в режим рисования – сейчас будем строить.

Конфликт (взаимодействие/столкновение) между предметами в гейм-деве называется коллизия. Мы будем обрабатывать коллизию по цвету, то есть цвет стены должен быть уникальным. Если цвет танка и стены будет одинаковым, то могут возникнуть проблемы. Мы выбрали цвет и при помощи «Прямоугольника» нарисовали стену.

Рисуем стену

Обрабатываем коллизию

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

Добавляем нашему танку еще одно условие из группы «Управление»: «если , то». Оно должно стоять внутри предыдущего! Заходим в группу «Сенсоры» и выбираем условие «касается цвета» (добавляем нужный — можно воспользоваться пипеткой). У нас получилось двойное условие: если стрелка вверх нажата, то танк едет вперед, и если танк идет вперед, он касается нашего запрещенного цвета, то он не может продолжать движение и идет назад (Рис. 12).

Условие для стены

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

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

Теперь наш танк не сможет заехать внутрь стены. Вы можете нарисовать любое количество стен или сделать игровое поле с лабиринтами. Главное – танку нужно место для движения!

Танчик на Scratch и поле боя

Переходим к стрельбе

Чем стреляет танк? Вообще у этой техники свои специальные танковые снаряды, но чтобы скорее начать играть, мы нарисуем нашему танку ядра. Давай создадим новый спрайт, который так и назовем – Ядро 1. В нашем случае это просто красный круг, но вы можете включить фантазию и изобразить полноценный танковый снаряд!

Ядро 1

Логика движения ядра

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

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

Этот блок должен быть отдельно от блока «повторять всегда», так как ядро прячется один раз в начале игры и никогда не показывается.

Переходим в группу «Управление» и выбираем «повторять всегда». Из группы «Управление» вновь берем условие «если, то» и в «Сенсорах» выбираем «клавиша нажата». Этой кнопкой будет стреляться наш танк. Мы выбрали пробел.

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

Условие для Ядро 1

Условие для клона ядра

Следующие условия мы будем задавать клону. Нам нужно синхронизировать положение Ядра 1 и положение Танка 1. В группе «Управление» выбираем блок «когда я начинаю как клон» и из группы «Внешний вид» обязательно добавляем «показаться», ведь на предыдущем шаге мы спрятали наше ядро. Переходим в группу «Движение» и выбираем: «перейти в x…, в y..». Вместо каких-либо значений, нам нужно задать унаследование от Танка 1. Для этого переходим в «Сенсоры» и выбираем блок (Рис. 16.). Добавляем его в оба кружка. Сначала меняем от кого – в нашем случае «Танк 1», а затем выбираем переменную – x, а затем y. Должно получится вот так (Рис. 17.).

Блок из группы

Условие для клона Ядра

Но ядро должно и лететь в направлении танка, поэтому из группы «Движение» выбираем «повернуть в направлении» и вновь вместо значения добавляем блок из группы «Сенсоры» (см. Рис. 16). Направление наследуется от Танка 1.

Если сейчас мы добавим нашему ядру блоки движения, то он будет игнорировать и нашего противника, и стены вокруг. Поэтому ядро должно лететь до тех пор, пока чего-нибудь не коснется. Переходим в группу «Управление» и выбираем «повторять пока не», а в качестве условия добавляем из группы «Операторы» блок «или». Так как условие тройное, мы создаем два ИЛИ и соединяем их как показано на Рис. 18.

Два оператора ИЛИ

Касания ядра

Из группы «Сенсоры» добавляем условия: «касается край», «касается цвета» (цвет наших стен) и последнее условия должно относится к Танку 2. Самое время его создать. Но сначала закончим с ядром, а пока оставь последнее условие пустым.

Внутрь условия добавляем блок из группы «Движение»: «идти на 10 шагов». Повторим, чем больше значение, тем быстрее движется предмет. 10 для ядра – это не серьезно, наш танк легко уедет от такого снаряда, поэтому мы поставим значение 20.

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

Давайте скорее настроим второй танк и попробуем пострелять!

Создаем второй танк

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

Дублируем Танчик на Scratch

На экране появился второй танк, но пока они двигаются одновременно, потому что оба настроены на движение по стрелкам. Сейчас мы это исправим. Но сначала давай поменяем название спрайта на Танк 2 (или имя) и попробуем пострелять! Возвращайся в код Ядра 1, и добавь в условие – «касается Танк 2».

Изменяем условия для Танка 2 Два танчика на боле боя в Scratch

У нас все заработало и Танк 1 стреляет, а у вас?

Давайте поработаем над дизайном Танк 2 – изменим его цвет и кнопки управления.

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

Если первый танк у нас двигается с помощью стрелок, то второй будет двигаться классическим сочетанием букв – WASD. (w – вверх, s – вниз, a – лево, d- право). Нам практически не нужно менять код, осталось только заменить стрелки на буквы (Рис. 22).

Код движения Танк 2

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

Осталось научить его стрелять и оба танка будут на равных. Для этого дублируем снаряд правой кнопкой мыши на панели спрайтов. Весь код у второго снаряда остается неизменным, кроме того, что Танк 2 будет стрелять не пробелом, а другой кнопкой (мы выбрали цифру 1) и наследовать данные от Танка 2, а касаться не может Танка 1.

Условия для Ядра 2

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

Жизни

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

Переменные

Переходим в группу «Переменные» и нажимаем «Создать переменную». У нас их будет две – Жизнь 1 (для Танка 1) и Жизнь 2 (для Танка 2). Эти переменные можно ввести в любой участок кода, любого спрайта. Мы выбрали Ядро 1 и добавили переменные со значением 3 – у каждого танка по 3 жизни. В группе «Переменные» выбираем «задать .. значение».

Меню переменной Установка переменных в код

Наши переменные уже отображаются в верхнем левом углу сцены.

Переменные на поле игры Танчики на Scratch

Условие для ядра

Когда ядро касается вражеского танка, жизни должны уменьшаться. Давайте введем условие, при котором от касания ядра будут зависеть количество жизней танка. Для этого выберем наш Танк 1 и дополним его основной блок. Заходим в группу «Управление» и выбираем условие «если, то». Будьте внимательны, блок должен находится внутри «повторять всегда», но не попадать в остальные.

Далее переходим в «Сенсоры» и выбираем «касается». Для Танка 1 вражеское Ядро 2. Значит именно их он боится. В группе «Переменные» выбираем блок «изменить на». Танку 1 соответствуют Жизни 1, поэтому выбираем их, а в значении пишем -1. То же самое пишет для Танка 2, меняя условия на Ядро 1 и Жизни 2.

Коллизия взаимодействия может сработать несколько раз за короткий промежуток времени и отнять сразу все жизни у нашего танка, поэтому мы добавим небольшую задержку. Создадим ее искусственно, добавив в код условие «ждать 0.1 секунд». Переходим в группу «Управление» и выбираем нужное условие (Рис. 26).

Код зависимости Ядра 2 и Жизней 1

Теперь, когда мы стреляем, количество жизней в переменных уменьшается. Если вы не хотите заниматься сердечками, то переходите к заголовку Winner! Но мы рекомендуем выполнить все части урока Танчики на Scratch. Показатель количества жизней есть в каждой игре и уметь их писать — универсальный навык.

Рисуем сердечки

Создаем новый спрайт и рисуем. Жизни могут быть и в виде звездочек, и в виде кружочков. Всего у этого спрайта должно быть 4 костюма: 1 костюм – 3 сердечка, 2 костюм – 2 сердечка, 3 костюм – 1 сердечко и 4 костюм – без сердечек.

Чтобы продублировать сердечки используем кнопки скопировать и вставить (Рис. 27.), а костюм размножим с помощью кнопки «Дублировать», нажатием правой кнопкой мыши на костюм слева (Рис. 28).

Рисунок сердечек-жизней Как дублировать костюм

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

Мы хотим, чтобы сердечки отображались четко над танком. Переходим во вкладку Код. Начинаем с базовой схемы: «Событие» -> «когда зеленый флажок нажат», «Управление» -> «повторять всегда». Далее переходим в группу «Движение» и выбираем «перейти к x. y…». В качестве условий мы возьмем знакомый нам блок (Рис. 16.) и добавим его и к «x», и к «y».

Фиксируем уровень жизни над танком

И положение x, и положение y, наши сердечки наследуют от Танка 1. Но если мы закрепим сердечки, то увидим, что при поворотах они наезжают на танк и их практически не видно, поэтому мы решили их немного приподнять. Для этого заходим в «Операторы» и выбираем блок с +. Положение по y необходимо достать, а на его место поставить оператора: в первой области написать цифру – на сколько приподнимутся наши сердечки, а во вторую область вернуть зависимость от положения y. Вот что у нас получилось (Рис. 29).

Код для сердечек Закрепили сердечки у одного из Танчиков на Scratch

Дублируем костюм с сердечками для второго танка с помощью клика правой частью мыши и меняем название спрайта на Жизни 2. В коде меняем положения от Танк 1 на Танк 2.

Сердечки отображаются, но их количество не изменяется при попадании снаряда. Нам необходимо ввести зависимость количества жизней в переменной и костюма с сердечками. Если у нас 3 жизни, то выбираем костюм 3, а если 2 жизни, то 2, и так далее.

Сердечки = жизни

Выбираем спрайт Жизнь 1 и добавляем новый кусок кода. Начинаем как всегда: «Событие» -> «когда зеленый флажок нажат», «Управление» -> «повторять всегда». В той же группе «Управление» выбираем условие «если, то». Заходим в группу «Операторы» и выбираем форму в виде ромба со знаком равно. В первой части у нас должна быть переменная. Заходим в группу «Переменные» и перетаскиваем Жизни 1.

Переменная Жизни 1

После знака = пишем цифру 3. После этого заходим в группу «Внешний вид» и выбираем «изменить костюм на ..» И выбираем тот номер костюма, на котором изображено 3 сердечка. Теперь мы можем продублировать условие «если, то» еще 3 раза, и поменять количество жизней и номера костюмов. В конце последнего условия, когда количество жизней ровно 0, нам нужно не только сменить костюм на тот, у которого нет сердечек, но и добавить из группы «События»«Конец игры». У нас получился вот такой код (Рис. 32).

Код для Жизни 1

Дублируем эту часть кода для спрайта Жизни 2.

Для того, чтобы переменные поспели за циклом и успели обновиться, нам нужно поставить перед ним маленькую искусственную задержку. В группе «Управление» выбираем блок «ждать 1 секунду». Но целая секунда для нас много, сократим до 0.1.

Новое условие в коде

Не забывайте, что у нас 2 цикла с сердечками. Нужно добавить задержку и в Жизни 1, и в Жизни 2.

Winner!

Нам осталось вывести на экран имя победителя. Сделаем это в настройках сцены. Для этого нажимаем на панель «Сцена» рядом с панелью спрайтов. Переходим во вкладку «Фоны» и дублируем их. Всего у нас получится 3 фона – основной и 2 фона для победителей.

Выбираем текст и на одном пишем – «Победил игрок 1», а на втором – «Победил игрок 2». Если вы знаете с кем будете играть, можно ввести ваши имена или забавные псевдонимы.

Фон в игре Танчики на Scratch

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

Объявляем победителя

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

Эта часть работы похожа на наше решение с костюмами. Фоны также зависят от количества жизней. В группе «Операторы» выбираем блок со знаком больше (>) и добавляем в условие. На первом месте ставим Жизни 2, а на втором Жизни 1. Получается, что если в момент окончания игры значение переменной Жизни 2 больше, чем Жизни 1 победил Танк 2, и именно это нам должен сообщить фон.

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

Код для смены фона

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

Жизни в минусе

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

Остановка скриптов

Дублируем это условие к обоим танкам и снарядам.

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

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

(*)Респаун

В серьезных играх у героя всегда есть место постоянного появление героя. Ваша игра будет выглядеть еще круче и профессиональнее. А делается респаун очень просто. Мы переходим во вкладку «Код» любого из танков. Заходим в группу «Движение» и выбираем «перейти в x, y», и еще одно условие «повернуть в направлении» и ввести нужные значения. Чтобы танк всегда оказывался в этом месте в начале, нам нужно поставить блок до начала цикла.

Код для респауна в Scratch

Координаты выбирайте любые.

Финал

Финальная версия игры

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

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

Еще больше игр на Scratch на нашем онлайн-курсе! Итог каждого урока — новая игра. На курсе мы создаем змейку, Fruit ninja и даже свою версию легендарного Марио. Почитать о курсе вы можете ЗДЕСЬ.

Рабочая версия проекта по нашей инструкции

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

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