Проект “Flappy Parrot”
Создадим проект-аналог игры Flappy Bird. Главный герой игры - попугай, должен пролетать через пространство между зелёными трубами. При этом трубы по высоте располагаются случайным образом. Управлять попугаем можно только с помощью клавиши Space . После нажатия этой клавиши попугай взлетает вверх на некоторую высота и затем продолжает плавно снижаться. Готовая игра может выглядеть следующим образом:
За пересечение препятствия игроку начисляется одно очко.
Создание проекта. Рисование спрайтов.
Создайте новый проект Scratch и удалите стандартный спрайт с изображением кота. Выберите для игры подходящий фон из библиотеки:
После этого добавьте спрайт, который лучше всего подойдёт на роль главного героя и назовите его Игрок.
Спрайт не обязательно должен изображать птицу. Найдите спрайт который больше всего вам нравится.
Теперь необходимо нарисовать трубы через которые будет пролетать главный герой. Создайте новый спрайт:
Используем для заливки фигур линейный градиент. Для этого щелкните по меню Заливка 1
, выберите линейный градиент 2
и установите первый цвет градиента 3
. Затем щелкните по второму цвету градиента 4
и настройте его:
Настройте цвет и толщину контура:
Выберите инструмент Прямоугольник и нарисуйте первую деталь трубы:
При её рисовании ориентируйтесь на центр спрайта, обозначенный значком .
Если прямоугольник расположился не так как вы хотели, то можно отменить предыдущее действие с помощью кнопки , или с помощью инструмента Выбрать щелкнуть левой кнопкой мыши по нарисованному прямоугольнику и изменить его положение и размер.
С помощью инструмента Прямоугольник нарисуйте утолщение в нижней части трубы:
С помощью инструмента Выбрать обведите рамкой оба прямоугольника и нажмите кнопку Группировать . Выберите сгруппированные прямоугольники и создайте копию этой группы, последовательно нажав кнопки Копировать и Вставить . В поле для рисования появится копия группы. Отразим её по вертикали с помощью кнопки Отразить по вертикали . Используя инструмент Выбрать , переместите отражённую часть в нижнюю часть окна для рисования. Результат может выглядеть следующим образом:
Чтобы точнее передвигать выделенный объект, используйте клавиши со стрелками. Зажав клавишу ⇧Shift и стрелку, объект можно передвинуть на большее расстояние.
Дайте новому спрайту название Трубы.
Программируем движение препятствий
Создадим скрипт с помощью которого каждые три секунды будет создаваться клон спрайта Трубы. Клоны этого спрайта и будут двигаться по сцене.
Перейдите в закладку Код спрайта Трубы и добавьте ему следующий скрипт:
После этого добавьте скрипт который будут выполнять все клоны спрайта Трубы. Клон должен перейти в правую часть сцены и затем двигаться в сторону левого края сцены:
Нажмите на зелёный флажок, чтобы протестировать работу скриптов. Обратите внимание на несколько недочётов: клоны спрайта начинают движение с того места, где сейчас расположен спрайт и, при движении влево, поднимаются или опускаются, так как в блоке Плыть координате y дано значение 0.
На данный момент отверстие между трубами всегда появляется на одинаковом месте. Исправьте последний скрипт следующим образом:
Теперь отверстие между трубами будет появляться на разной высоте относительно начала координат, а движение спрайта будет строго горизонтальным после того, как в блоке Плыть в качестве значения координаты y указана текущая координата клона, полученная с помощью блока-функции Положение y.
Нажмите на зелёный флажок, чтобы протестировать работу программы.
Программирование спрайта-игрока
Выберите спрайт Игрок и добавьте ему следующий скрипт:
После этого нажмите на зелёный флажок и проверьте работу скрипта. После запуска программы спрайт с игроком должен начать медленно падать вниз.
После нажатия на клавишу Пробел
спрайт игрока должен приподняться на некоторую высоту. Добавьте спрайту Игрок следующий скрипт, который решает эту задачу:
Если у спрайта который вы выбрали в качестве игрока есть несколько костюмов, попробуйте изменить последний скрипт таким образом, что бы он переключался между двумя костюмами во время подъёма спрайта.
Определение столкновений
На данный момент спрайты двигаются и управляются независимо. Необходимо добавить скрипты которые бы определяли, столкнулся ли игрок с трубой или краем экрана, и сколько очков заработал игрок.
Выберите спрайт Игрок и добавьте ему следующий скрипт. С помощью блока ждать до мы определяем, произошло ли одно из двух событий: спрайт Игрок коснулся спрайта Трубы или спрайт Игрок коснулся края экрана. Если одно из событий произошло, то спрайт произносит фразу Конец игры!, отправляет сообщение Конец игры и завершает другие скрипты этого спрайта.
После того как игра окончена, трубы тоже должны прекратить движение. Выберите спрайт Трубы и добавьте блоки с помощью которых получив сообщение Конец игры все остальные скрипты этого спрайта остановятся.
Счёт очков
Добавим возможность отслеживать, сколько препятствий пролетел игрок. Для этого выберите спрайт Трубы и добавьте переменную счёт.
Выберите спрайт Трубы и в скрипте Когда флажок нажат добавьте блок который обнулит значение счёта в начале новой игры:
После этого добавьте следующий скрипт:
Проверьте работу проекта. Обратите внимание на то, чтобы счёт обнулялся в начале новой игры.
Подбор сложности
В данном проекте ряд параметров можно изменять, для того чтобы подобрать самую подходящую сложность. Поэкспериментируйте с разными параметрами (скорость движения труб, частота их появления, размер спрайтов в процентах и др.), чтобы подобрать подходящую сложность для игры.
*Улучшение игры
Добавьте возможность сохранять лучший результат в отдельной переменной.