Игра «Лови подарочек!»

Концепция приложения: игра-кликер на новогоднюю тематику. Подарок хаотично перемещается по полю и нужно успеть его поймать.

Материалы к проекту:

Дизайн-макет

Игра будет состоять из одного экрана. Примерный внешний вид:

Предварительно нужно найти картинку для фонового изображения и для спрайта подарка, и загрузить их в раздел медиа.

Настройки приложения:

  • Название — «Лови Подарочек».
  • Иконка — изображение подарка.
  • Размер экрана — Адаптивный (Responsive).

Настроим Экран:

  • Выравнивание по горизонтали — Центр.
  • Выравнивание по вертикали — Верх.
  • Скрыть отображение статус-бара и Заголовка.

Добавим Холст. Настроим его:

  • Фон — изображение, которое вы загрузили в медиа. Например, ёлочка.
  • Размер:
    • Ширина — наполнить родительский,
    • Высота — 80%, так как нам нужно оставить место под счет и кнопку рестарта.
  • Остальные настройки по умолчанию.

Добавим Изображение Спрайта. Его можно добавлять только на Холст, как на рабочее поле.

Установим то изображение, которое вы скачали ранее. Если изображение небольшое, то размер можно оставить как «Автоматический», если большое, лучше выставить размеры принудительно, в районе 50*50 пикселей. Переименуйте компонент в «Подарок». Остальные настройки можно оставить по умочанию.

После холста добавляем Горизонтальное расположение. Внутри него будет размещаться информация о счете. Здесь нам ничего настраивать не нужно.

Внутрь горизонтального расположения нужно добавить 2 надписи. Одна будет содержать текст «Счет :». Компонент второй надписи нужно переименовать в Счет, текст присвоить «0».

Будьте внимательны! В одной надписи меняем только текст, во второй — текст и название компонента.

Чтобы счет можно было сбрасывать и перезапускать игру, добавим Кнопку. Оформление ее может быть любое, главное, чтобы компонент назывался «Заново» и текст кнопки был «Заново».

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

Добавим компонент Часы — они будут служить таймером перемещения спрайта. в настройках укажем интервал 600 (в пересчете на секунды это будет 0,6). Чем меньше будет интервал, тем быстрее будет передвигаться спрайт по экрану.

Добавим компонент Текст в Речь, настройки менять не будем.

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

Все компоненты добавлены, настройки выполнены. Весь список компонентов имеет вид:

Теперь можно переходить к программированию.

Программирование

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

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

Именно в этом блоке мы задаем какие действия будут производится при вызове. Чтобы нам было проще работать в дальнейшем, переименуем «процедура» в «движение». Таким образом мы зададим уникальное название нашей функции.

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

А в качестве числовых значений координат будут случайные числа, которые будут выбираться в диапазоне ширины и высоты холста. Напомню, что ширина = ширине всего устройства, высота = 80% высоты устройства.

Процедура готова. Теперь с помощью команды вызова можем её использовать в других частых программы.

Когда игра запущена, нам нужно переместить спрайт в случайное положение и включить фоновую музыку:

Запрограммируем движение — когда сработает таймер, выполнить процедуру Движение (т.е. спустя 0,6 секунды — столько мы задали в настройках таймера — переместить спрайт в новую позицию).

Теперь что делать, когда мы коснулись спрайта. Во-первых, заставим устройство вибрировать, но не очень долго, 500 миллисекунд или меньше. Счет при этом нужно увеличивать на 1, мы же заработали очко! Счет обязательно должен сразу показываться на экране.

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

  • Нам голосом устройство скажет «Победа!».
  • Проиграется звук смеха Санта Клауса.
  • Игра остановится.

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

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

Игра готова, можно создавать apk файл и пробовать устанавливать на смартфон.