Проект “Баскетбол”

Создадим игру в которой сначала один игрок, а потом два смогут соревноваться в том, кто больше всего забросит мячей в корзину.

Начало работы

Создай новый проект. Выбери фон для игры, затем выбери спрайт с котом.

Создай переменную скорость y, которая будет доступна только спрайту с котом. Для этого при создании переменной выбери опцию только для этого спрайта:

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

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

Сохрани проект.

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

Нажми на зелёный флажок и несколько раз нажми на стрелочку вверх. Теперь кот будет прыгать.

Добавим коту возможность двигаться влево и вправо. Для этого добавь следующий скрипт:

Сохрани проект.

Нажми на зелёный флажок и проверь движение из стороны в сторону с помощью стрелочек на клавиатуре.

Создаём баскетбольную корзину

Создай новый спрайт Корзина. Перейди в закладку Костюмы и переключись к векторному режиму. С помощью инструмента Эллипс в центре нарисуй эллипс с жёлтым контуром. Толщину контура можно настроить:

Добавим спрайту Корзина скрипт при выполнении которого спрайт будет перемещаться с случайную точку в верхней части сцены:

Добавь скрипт который при получении сообщения попал будет сообщать о заброшенном мяче:

Создание спрайта-хитбокса

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

Создай спрайт хитбокс, который представляет собой чёрный квадрат, который будет размещаться в центре корзины:

Добавь скрипту хитбокс скрипт, который будет перемещать этот спрайт в центр кольца и скроет его со сцены:

Создаём баскетбольный мяч

Добавь к сцене спрайт Bascetball. Перейди в раздел Данные и создай две переменные - скорость y (Только для этого спрайта) и Счёт игрока 1 (Для всех спрайтов):

Перед началом игры сбросим счёт и спрячем мяч:

Добавим скрипт с помощью которого по нажатию клавиши пробел можно будет кинуть мяч. В скрипт будет располагаться условие для определение попадания мяча:

Забитым будет считаться только тот мяч, который коснулся спрайта хитбокс, а также находится в состоянии падения.

Сохрани проект.

Нажми на зелёный флажок и попробуй закинуть мяч. Обрати внимание, что очки считаются неправильно. Очки начисляются игроку всё время пока мяч касается хитбокса. Для того чтобы исправить эту ошибку добавь мячу переменную забросил (Только для этого спрайта):

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

Сохрани проект.

Игра готова. Нажми зелёный флажок и проверь работу игры.

Игра v 2.0. Добавляем второго игрока

Добавим возможность играть вдвоём. Для этого дублируй спрайт Спрайт1, перекрась его в другой цвет и отрази по вертикали. Перекрасить и отразить нужно оба костюма:

Выбери Спрайт2 и измени управление данным спрайтом. Все изменения обведены красной рамкой:

Дублируй спрайт Basketball и выбери дубликат (Basketball2). Создай переменную Счёт игрока 2 (Для всех спрайтов).

Исправь скрипты во втором мяче. Все изменения выделены красной рамкой:

Сохрани проект.

Теперь игра должна работать для двух игроков.

Чит-код

Попасть в подвижную корзину довольно тяжело. Добавим чит-код с помощью которого можно остановить корзину на несколько секунд.

Выбери спрайт Корзина и создай переменную застыть (Только для этого спрайта):

Добавь скрипт который будет менять значение переменной застыть:

Дополним скрипт который отвечает за случайные перемещения корзины:

Чит-код готов.