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

Делаем дендивскую игру Марио на Scratch



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ВНИМАНИЕ:

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

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

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

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

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

 

 

Author: Александр Захаркив