Scratch алгоритмы на примере проекта Ниндзя

простейшая игра на скрейтч



Привет юным программистам! Статья, которую ты читаешь является первым уроком программирования в Scratch для детей 8-9 лет. Описание алгоритмов начального уровня, ориентированных на детвору 6-7 лет, можно найти в рубрике: Scratch для детей . В этой первой части написания кода для игры Ниндзя в среде разработки скретч вы познакомитесь со следующими базовыми алгоритмами программирования:

  • Перемещение вправо-влево (отдельно этот код описан в проекте — Едущая машинка (scratch для детей 6-7 лет))
  • Движение с изменением направления персонажа
  • Прыжок вверх (отдельное описание кода смотрите в статье — Как сделать прыжок в Scratch)
  • Появление и исчезновение спрайтов
  • Взаимодействие нескольких спрайтов (удар мечом, запуск молнии в противника)
  • Запрыгивание на другой объект
  • Преобразование спрайта в другой объект

Теперь поговорим о каждом из приведенных выше алгоритмах scratch по отдельности. Перед прочтением материала по возможности ознакомьтесь со статьями начального уровня — их я помечаю тегом: для детей 6-7 лет в основной рубрике по детскому программированию. Перед прочтением скачайте графическую часть будущей игры (ZIP-архив)

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

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

Последовательность костюмов для идущего ниндзя
Последовательность костюмов для идущего ниндзя

 

ниндзя бьет по противникам в скрейтч
Ниндзя бьет по противникам в Скрейтч

Сразу загрузим костюм для Бомбермена (одного из врагов ниндзя)

bomberman scratch
Загружаем костюмы для первого врага

Ну и конечно же не забываем загрузить фон. На приведенных картинках виден порядок костюмов и их названия — вы должны справиться без проблем 🙂

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

направленное движение в скрейтч

  • Блок Показать — добавлен сюда из-за использования параметра Спрятаться в другом месте игры (пока можете  написать код без него);
  • Блок Если касается края, оттолкнуться — позволяет персонажу не уходить за края игровой области (попробуйте вначале написать этот код и не добавлять блок Установить способ вращения и посмотрите, что получится);
  • Установить способ вращения вправо-влево — добавление кода позволяет убрать у персонажа эффект переворачивания с ног на голову при отталкивания от края;
  • Повернуть в направлении -90 — этот код является основным в алгоритме движения спрайта с разворотом в нужном направлении и отвечает непосредственно за поворот в нудном направлении;
  • Идти 10 шагов — отвечает за скорость перемещения персонажа. Отвечает за движение спрайта в том направлении, куда он повернут. Те.е герой не всегда будет идти слева на право ! (поиграйтесь с значением данного блока, а так же попробуйте использовать его без блока Повернуть в направлении -90 градусов)
  • Ждать 0,05 секунд — код добавлен для плавной смены костюмов и визуальной видимости тго, что спрайт идет.
  • Следующий костюм — после каждого нажатия на кнопку персонаж будет менять костюм (попробуйте понажимать на кнопку медленно,а затем просто зажмите ее и посмотрите, что из этого выйдет)


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

Алгоритм прыжка вверх в Scratch

Подробное описание смотрите в статье — Как сделать прыжок в Scratch). Код для ниндзя будет иметь следующий вид:

прыжок в скрейтч

Описание запрограммированных блоков:

  • Показать — показывает персонажа, если до этого по какой-то причине он имел параметр Скрыть (в нашем случае именно так);
  • Задать скорость прыжка значение 0 — Заводим переменную с названием: Скорость прыжка и устанавливаем значение: 0
  • Повторять всегда — блок, который позволяет постоянно выполнять указанный внутри код. Простейший цикл.
  • Если … то — простейший алгоритм условия. Выполняется в зависимости от действий на контроллере управления (клавиатуре)
  • Клавиша W нажата — непосредственное указание, пояснение думаю не требуется 🙂
  • Задать Скорость прыжка значение 20 — устанавливаем значение переменной равное 20 (поиграйтесь с этим параметром и посмотрите, что изменится при его корректировки)
  • Повторить 41 раз — цикл с определенным количеством повторений (Как ты думаешь изменив это значение, что изменится в действиях спрайта?)
  • Изменить y на скорость прыжка — меняем визуальное расположение спрайта в зависимости от значений в переменной. Данный алгоритм кода позволяет видеть плавный прыжок спрайта с постоянным изменением высоты прыжка)
  • Изменить скорость прыжка на -1 — блок отвечает за плавное опускание спрайта по y на изначальное место.

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

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

удар мечом по противнику в скрейтч

Описание блоков:

  • Когда Зеленый флаг нажат — спрятать спрайт
  • Когда клавиша а нажата — спрятать спрайт (Обратите внимание на блоки синего цвета. Попробуйте вначале написать код без них и посмотрите,что изменится после их добавления!)
  • Когда клавиша d нажата — все так же прячем объект (Вопрос: Как ты думаешь почему для клавиш A и D описаны дополнительные синие блоки, а для прыжка вверх и запуска игры нет?)
  • Когда клавиша w нажата — прячем героя во время прыжка

Зачем написан алгоритм синего цвета:

направление удара мечом в scratch

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

 

 

Скачать фото архив кода для программирования первой части игры Ниндзя на Скретч

 

 

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