Найти в Дзене

Игра "Летающая птица". Scratch 3.

Данная игра относится к очень интересному для нас сегменту - играм с управлением одной кнопкой. Поиск сюжетов и создание таких игр проходили во время освоения работы с микроконтроллерами и средой mBlock3. Условие - управлять одной кнопкой, соединённой с Arduino IDE. Такой вариант игры я так же выложил, в раздел mBlock3. Но игрушка понравилась простотой реализации и множеством полезных навыков, получаемых в ходе программирования, так что мы ее используем и в курсе Scratch. Общая линия сюжета взята из известной мобильной игры Flappy Bird, разработанной в 2013 году вьетнамским художником видеоигр и программистом Донгом Нгуеном в его игровой студии .Gears. Игрок с помощью касаний экрана должен был контролировать полёт птицы между рядами зелёных труб, не задевая их. У нас все намного проще))). Рисуем сами или берем подходящий спрайт из библиотеки. Один из любимых у детей - дайвер, к которому они дорисовывали форсаж))) Но мы пока рассмотрим нарисованный вариант. Рисунки делаем в векторном
Оглавление

Данная игра относится к очень интересному для нас сегменту - играм с управлением одной кнопкой. Поиск сюжетов и создание таких игр проходили во время освоения работы с микроконтроллерами и средой mBlock3. Условие - управлять одной кнопкой, соединённой с Arduino IDE. Такой вариант игры я так же выложил, в раздел mBlock3. Но игрушка понравилась простотой реализации и множеством полезных навыков, получаемых в ходе программирования, так что мы ее используем и в курсе Scratch.

Общая линия сюжета взята из известной мобильной игры Flappy Bird, разработанной в 2013 году вьетнамским художником видеоигр и программистом Донгом Нгуеном в его игровой студии .Gears. Игрок с помощью касаний экрана должен был контролировать полёт птицы между рядами зелёных труб, не задевая их. У нас все намного проще))).

Персонажи (спрайты) и скрипты

Птица

Рисуем сами или берем подходящий спрайт из библиотеки. Один из любимых у детей - дайвер, к которому они дорисовывали форсаж))) Но мы пока рассмотрим нарисованный вариант. Рисунки делаем в векторном варианте, так проще, ведь все они будут из графических примитивов (овалы, прямоугольники). После отрисовки можно перевести в растровую графику, так компьютеру будет проще выполнять игровые действия. Но сейчас это не так актуально, мощности легко справляются с нагрузкой, так что - просто для информации.

Первый костюм - Крылья_сложены
Первый костюм - Крылья_сложены

Можно рисовать сразу маленький размер, увеличив масштаб. Но если вы нарисовали птицу слишком большой, всегда можно поставить в начало программы блок Установить размер ___ % и подкорректировать размер персонажа. исходим из того, что птица как минимум должна пролетать между трубами. Не забываем учитывать центровку (см. рис)

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

Второй костюм - крылья_вверх
Второй костюм - крылья_вверх

Скрипты для Птицы представлены ниже.

Скрипты спрайта Птица
Скрипты спрайта Птица

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

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

Окно

В нашем варианте зеленые препятствия - не трубы, а окна))) Так, почему то, проще детям было понять, что делает птица. Летает между окнами, форточками. Ну и ладно, оставим окна). Костюм один и весьма простой.

Кстюм персонажа Окно
Кстюм персонажа Окно

Скрипты - ниже:

Скрипты спрайта Окно
Скрипты спрайта Окно

Во время игры окно клонируется и появляется в случайных позициях. При касании птицы - игра прекращается. При касании персонажа Стенка_слева окно удаляется, счет повышается на единицу.

Стенка_слева

Данный спрайт введен для фиксации достижения окном левого края. Может вы придумаете и более изящное решение.

Костюм:

-7

Скрипт:

Скрипт спрайта Стена_слева
Скрипт спрайта Стена_слева

Можно и просто сразу нарисовать/поставить стенку в нужной позиции.

***

Все, можно запускать игру и получать удовольствие. Понятно, что многое можно менять, подбирать масштабы, размер отверстия, скорости, рисовать фон, создавать уровни и т.д. Но детям игра нравится и в таком упрощенном варианте, поверьте).

На досуге сниму и выложу видео, как выглядит игра.

Файл игры выложен в электронном архиве проектов.