Всем драсть, форумчане! Жука здеся.
Вот и подоспел очередной пост посвященный багфиксу. Сегодня было сделано следующее: исправлены 3 бага, среди которых был последний баг из листа с системой комбо, и начата работа над исправлением одной глобальной системы. Также за сегодня я успел полностью исправить механики бустеров и буст паркура (По подробнее об этой механике см. пост выше), с последующими оптимизации и внедрением в них элементов, упрощающих их использование, во время прохождения игры. Но давайте обо всём по порядку:
Баг с исчезновением текстуры персонажа в окошке боковой проекции комбо
Давайте для начала разберёмся с назначением этого окошка. Окно с боковой проекцией нужно для того, чтобы при исполнении комбо, находясь при этом в фронтальном направлении(Когда персонаж направлен вверх или вниз), игрок мог определить по боковой проекции определить то, какой удар нанести следующим.
Но долгое время (с момента создания данной визуальной детали), текстура игрока не отрисовывалась в этом окне.
Изображение бага:
В чём же была проблема, которая провоцировала данный баг? Ну... баг решился тогда, когда я переместил строчку, отвечающую за очищение текстуры, на несколько пунктов выше. Скорее проблема крылась не в коде, а в моей лени
Исправленный вариант:
Исполнение ударов во время полёта по бустерам
Изображение бага:
Вкратце, данный фикс устраняет ошибки управления. Выражались они в возможности исполнения ближних ударов во время полёта. Данная ошибка не давала бы игроку возможности пройти игру дальше, в некоторых моментах игры. Ибо из-за сырости данной механики, игроку, на выбор направления нового дэша, был бы выделен жалкий кадр, а при нажатии кнопки выбора раньше, игрок бы встал на землю, ударив копытом в воздух. Стоит ли говорить, что игра воспринимала бы это как окончание полёта и, при анализе пола под игроком, скинула бы того в пропасть под ним?
Исправленный вариант:
В особенности и детали исправления данной ошибки вникать не буду. Долгий пост будет. Просто всё объясню в общей манере. Вкратце, теперь при налетё на бустер, игра присваивает определенной переменной значение true. Данная переменная отвечает за "заморозку" кнопок управления. При остановке персонажа, данная переменная отключается и значение её снова становится false, возвращая игроку управление. Спросите: "А как тогда игрок управляет полётом при налёте на последующие бустеры?" - Что же.. ответ прост. Для данной механики был сделан отдельный метод, по принципу действия который схож с исполнением обычного дэша, но написанный в более упрощенном варианте, не подразумевающий в себе задержку между воспроизведением или выбора между подкатом или дэша.
Не восстанавливающиеся бустеры.
Игрок прыгает по бустерам >> Бустеры исчезают >> Игрок проваливает буст паркур >> Игрок спавнится на последнем чекпоинте, перед бустерами >> Бустеров нету >> Игрок не может пройти игру.
Решением данной ошибки послужило обычное введение переменной с таймером, по истечению которого бустеры вновь появляются. Данный пункт выходит настолько мелким, что даже скриншот прикреплять лень.
Начало реставрации механики супер бустера.
Окей. Читая посты выше, мы теперь знаем что такое бустеры и то, как они работают... но что такое супер бустеры?
Вкратце, при налёте на них, они запускают мини игру стилизованную под скроллинг шутемап. Только в этой мини игре нельзя стрелять, а нужно подбирать обычные бустеры для увеличения скорости. При падении скорости до нуля - игрок падает и умирает. Также в данной мини игре реализованы моменты, когда требуется налететь на ещё один супер бустер для смены направления полёта, в противном же случае игрок врежется в стену, в следствии чего умрёт. Также по ходу данной мини игры, игроку будут лететь на встречу различные враги и препятствия. Врагов игрок может сбить, за что получит очки жестокости, а в препятствия игрок может только смачно вмазаться, погибнув при этом. Также с ростом счётчика скорости скроллинг карты, путь до финиша, скорость приближения бустеров, врагов и препятствий - будут тоже ускорятся.
К сожалению, от работающей версии данного скрипта остался лишь этот скриншот с демонстрацией бага. Причиной не дееспособности скрипта является базирование на старой версии проигрывателя анимаций, который, с того времени, в корне изменился. Процесс реставрации этого скрипта будет не самой лёгкой задачей. Реставрировать придётся 1020 строчек кода. Задача, как я думаю, будет не из лёгких. Учитывая, что попутно нужно будет её оптимизировать и исправлять различные ошибки - то я думаю, что на недельки 2-3, если не месяц, я на нём застряну.
Следующий пост, о прогрессе над реставрацией, думаю стоит ожидать в среду, или в четверг.
Ожидайте.