Java Android. Урок 15 (“Делаем игру Salvador”)

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

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

Дадим константы идентификаторов будущих кнопок:

Добавим пока только одну кнопку:

А теперь её отображение:

Проверим что получилось:

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

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

Теперь добавим ещё парочку методов для самого движения:

Добавлю имплементацию в класс интерфейса ответственного за перехват кликов по экрану устройства:

Теперь инициализируем в конструкторе GameEngine на этот интерфейс, указывая текущий класс для реализации его методов:

Далее реализуем метод (он единственный) этого интерфейса. Он будет таким:

Теперь сделаем отображение рельефа местности исходя из текущих координат игрока:

А положение рельефа получается таким:

В результате получается как-то так:

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

Задание по уроку:

1. Сделайте так, чтобы при движении рельефа также двигались вместе с ним и юниты инопланетян, ведь они тоже должны двигаться относительно корабля игрока (кроме ещё собственного их движение, которое пока не реализовано).

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

3. Сделайте чтобы после группирования частей на центре этого группирования образовывался инопланетный корабль, после этого он “жил” 5 секунд и затем взрывался.

Если всё получилось как нужно – молодцы! Если нет, давайте разберёмся что не так.

Урок 14 Урок 16

El Vinto, 2023 (Copyright)

Добавить комментарий