Передаём управление
Продолжаем цикл заметок о том, как я делаю что-то похожее на игру практически в прямом эфире.
С анимацией закончили в прошлом посте:
https://dtf.ru/indie/1690488-animaciya-spraytov-ili-testy-na-pesikah
Сегодня не слишком много, но очень важно (как по мне, конечно).
С нуля выстраивать поведение каждого объекта в игре звучит сложно и долго, пожтому мы вводим новый класс, а именно Controller!
Зачем он нужен? Он цепляется к любому предназначенному для этого спрайту и руководит им. По итогу план выглядит примерно так:
Сначала научим наш спрайт принимать контроллер и слушать его команды. Делать мы это будем в классе-детеныше нашего основного спрайта. А также напишем некоторые дополнительные методы и охапку стандартных команд.
Теоретически все круто, но нужно теперь это все воплотить в реальность. Текущей целью будет подарить возможность спрайту получать команды от пользователя и двигаться туда-сюда по окошку игры. Звучит как механика ААА проекта, так что поехали!
Для начала научим наш спрайт двигаться и переведем текущие координаты объекта в тело класса, чтобы желать с ними все, что нам заблагорассудится, а потом просто подставлять их, куда следует:
Для того, чтобы контроллер и спрайт заговорили на одном языке, а также с целью формирования адекватного (насколько это возможно в моих руках) интерфейса создадим список команд:
Собственно, запускаем, и наша сиба теперь может и напасть (на самом деле нет, но спрятаться за окошком - вполне).
Думаю, есть смысл отметить, что в спрайте появились стейты, как один из вариантов предустановленных настроек, которые применяются к классу при соответствующей команде контроллера.
Ниже как раз объявление стейтов, связанных с движением спрайта и смены его анимации, а также вариант применения:
Кажется, пришло время это все причесать так, чтобы можно было использовать, и двигаться дальше! Собственно, по плану: коллизии, более-менее удобный "интерфейс", функционал переключения уровней и начнем работу над концептом самой игры)
Всем спасибо!