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

На вкладке «Космос» подберем понравившуюся картинку.

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

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

Теперь запрограммируем её. Что она должна делать? При старте приложения она должна появляться по центру экрана.

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

Игра
Теперь перейдем к программированию игрового процесса. Для начала нам нужно нарисовать лабиринт — это фоновая картинка, на которой будут изображены стены. Для этого перейдем в сцену и выберем «Нарисовать фон».

Вам откроется редактор фонов. Выберите инструмент «Линия» и установите толщину побольше (например, 7). Нарисуйте стены лабиринта одним цветом, например, черным или синим. Не нужно делать сложный лабиринт, для начала сойдет простой. Оставьте достаточно места для прохода персонажа, чтобы он не застрял.

Добавим сразу блок, который будет задавать смену фона на данный при получении сообщения «Старт».

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

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

Когда игра началась, то есть спрайт получил сообщение «Старт». Он должен встать на место у начала лабиринта. В нашем случае это координаты х = -215, у = 143. У вас могут быть другие, если лабиринт нарисован другой. Главное, чтобы спрайт вставал точно на место, не задевая стенки лабиринта.
Лайфхак: чтобы вручную не писать координаты спрайта, просто перетащите его мышкой в нужное место. Текущие координаты сами подставятся в блок «Перейти в …»
Скорее всего ваш спрайт огромен и никак не вписывается в лабиринт. Поэтому сначала нужно откорректировать его размер. Лучше всего это сделать программно с помощью блока «Установить размер». Процент размера вы должны подобрать сами так, чтобы спрайт свободно проходил между стенками, не застревал в узких местах и на поворотах. В нашем случае это 20%.
И после того, как спрайт стал меньше и встал на свое место, мы можем его показать.

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

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

Если вы запустите игру и проверите управление, то можете заметить, что спрайт беспрепятственно проходит через стены лабиринта. Все потому, что мы еще не создали условие столкновения со стенами. Для этого тоже будем использовать блок ЕСЛИ. Стены у нас изображены на фоновом рисунке черным цветом, поэтому будем проверять условие столкновения спрайта с этим цветом. Если вы рисовали стены другого цвета, подставляйте его. Если спрайт касается черного цвета, развернутся на 180 градусов (т.е. в противоположном направлении) и идти 5 шагов (или количество шагов, которое вы установили для движения спрайта).

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

Перейдем к созданию финиша — ракеты. Добавим спрайт ракеты — можно найти в коллекции.

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

Когда зеленый флажок нажат, спрайт должен спрятаться.

Когда получено сообщение «Старт» и игра началась, Финиш должен появится в конце лабиринта. Координаты конца зависят от конструкции лабиринта. Сюда же добавим принудительную смену костюма на тот, что без горения, а также зададим размер спрайта. Размер подберите сами, под ваш вариант игры. У нас это 40%. Маленький бонус — вместе с ракетой идет космический звук, добавим его как сигнал, что игра началась. Это необязательный блок. Вы можете добавить свой звук, выбрав его из библиотеки, или не добавлять звуков вовсе.
В итоге у нас получается вот такой набор блоков для спрайта Финиш:

Во время игры спрайт ракеты ничего не делает — просто стоит. Его главная задача — взаимодействие с игроком, когда тот доберется до него. Удобнее условие касания добавить именно в блоки к игроку: если игрок касается спрайта Финиш, передать сообщение «Победа». Добавим это в блок цикла. В итоге получается вот такой блок у игрока:

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

Сцена должна сменить свой фон на другой. Например, на поверхность Луны. Для этого найдем этот фон в библиотеке фонов и добавим его. В итоге у сцены должно быть три фона:

Также запрограммируем смену фона на новый:

Настроим анимацию движения ракеты. Для начала она должна увеличится в размерах (если у вас она была сильно маленькая в игре), сменить костюм на тот, где горит двигатель, и перейти на середину сцены. Само движение мы сделаем так: ракета будет лететь вертикально вверх (т.е. изменять свою координату по y на 2, или другое число, чем больше число, тем быстрее летит), пока не достигнет самого верха (координаты y большей 220), затем она спрячется и передаст указание, что все скрипты всех спрайтов и сцен должны остановится. На этом игра завершается.

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

Будем использовать их. Для создания анимации вращения ракеты сделаем отдельный блок. В один блок цикла все заложить не получится, иначе анимация будет дискретной, как и движение. Ну и добавим звук, который уже добавляли ранее, при старте игры. В итоге блок команд будет выглядеть так: когда будет получено сообщение «Победа», начнет проигрываться звук, запустится цикл перемещения спрайта вверх.

Самоконтроль
Для самоконтроля проверьте соответствие блоков.
Сцена:

Кнопка:

Игрок:

Финиш:

Игра готова.