Глюк с белыми спрайтами на втором уровне
Разбирался с глюком «белого мяса» на втором уровне.
Блог разработчика
Разбирался с глюком «белого мяса» на втором уровне.
Второй лабиринт начинает понемногу запускаться. Обнаружились ошибки конвертации — почему-то я внес в словарь нулевой элемент в начале данных, хотя это неверно. Перепаковал лабиринт, нашел начало реальных данных обстановки. Но при обработке второго слоя возникла странность — в лабиринте обнаружилась целая толпа «Электриков» (монстров с кодом 6). Завтра буду разбираться, откуда там взялась эта бригада.
Так-с, отпуск закончился, приступаю к Дейву. Перед отпуском как раз придумал, как применить git для БКшных разработок, так что теперь вспоминать «на чем я там остановился??» куда проще:
$ git log commit 7781e47d17cb3c94e46afa33fa756934c34c2fb3 (HEAD -> master, origin/master, origin/HEAD) Author: grf <grfmaniak@bk.ru> Date: Thu Aug 8 21:39:42 2024 +1000 Add multiload procedure GLoad. Tiles data rename to DTILES00-14. commit ef8d661478b817568938be3666cf5fe29a1539a3 Author: grf <grfmaniak@bk.ru> Date: Thu Aug 8 18:48:42 2024 +1000 Prepare to 2nd level. grf@grf-main MINGW64 /d/develop/bk/git/dave (master)
Начал оформлять данные второго лабиринта. У каждого тайла в Дейве есть байт свойств, где каждый бит указывает на то, можно ли этот тайл пройти слева направо, сверху вниз, может ли в него попасть пуля и т.д. Грубо говоря, стена это или потолок/пол. Так как дизайн лабиринтов очень разный, то и тайлы используются разные. И каждому надо прописать его свойства.
Открываю, значится, картинку с тайлами Дейва, готовясь долго и нудно рассматривать их и решать, что из всего этого является стеной/полом/потолком/шкафом…. а Тэд из прошлого подкинул подарок — свойства-то уже прописаны! Я и забыл, что когда-то убил кучу времени на вычисление всего этого. Но, только для первых трех лабиринтов. Дальше придется снова пилить эти гири… Но и за это спасибо, Тэд из прошлого!
Сделал анимацию финального Босса. Таким образом, все монстры готовы. Перехожу к добавлению новых уровней (первый уже порядком поднадоел) и созданию процедуры перехода между уровнями.
Итак, готовы оба варианта Призраков — обычный и засадный. Обычный сначала летает с мерцанием, потом при встрече с Дейвом материализуется, перестает мерцать и становится уязвимым. Засадный просто ждет, когда мимо пройдет Дейв и возникает из стены. Переходим к Черепу.
Так как я добавил кучу спрайтов еще в прошлый раз, когда делал Электрика, то для «изготовления» Призрака мне понадобилось лишь создать под него таблицы движений. К тому же, Призраку плевать на обстановку в лабиринте — он летает сквозь стены. Таким образом, Призрак вышел в свет значительно раньше других монстров. Однако, на самом деле в Дейве два вида призраков — один вид изначально летает себе, а второй вид ждет в засаде, когда Дейв пройдет мимо. И только после этого «рождается». Полеты, в принципе, готовы, так что осталось сделать этого засадного Призрака и процедуру «материализации» — до первого столкновения с Дейвом Призрак не реагирует на попадания пуль, и начинает это делать только после этого самого столкновения и «перерождения». Этим и займусь.
После Призрака останется сделать Череп и финального Босса. Потом сделать переход из лабиринта в лабиринт и мелкие доделки типа задания управления.
P.S. Слона-то я и не приметил! Оказывается, нематериализованный Призрак летает не просто так, он мигает! Каждая вторая фаза не выводится, он исчезает с экрана в этот момент. И только после материализации он начинает выводится на каждую фазу. Интересно, почему я раньше этого не замечал? 🙂
Сделал очередного монстра — это Босс Электрик. В оригинале его движения весьма странные — он перебирает ногами на месте при шагах, а потом дергается вперед в предыдущей фазе. Чушь какая-то. Сделал более естественные движения.
Итак, Оборотень научился охотиться на Дейва. В процессе выяснилось, что его «затаивание в засаде» возникает само собой — он просто слишком быстро убегает и в итоге выходит из области обработки монстров движком. Так что эта фича реализовалась сама собой 🙂 Надо будет еще обкатать Оборотня в лабиринтах с большим количеством ящиков и платформ для прыжков, не будет ли он там застревать где-то.
Начал делать Оборотня. Для начала сделал бег. И пока я выяснял, по каким же принципам Вервольф делает прыжки — я понял, что это самый балбесный монстр, который так и норовит где-нибудь застрять и зациклиться в прыжках. Хотя раньше встреча с Оборотнем в игре означала максимальную опасность. Наверное, засчет его внезапности. Уж больно резво он выпрыгивал из-за угла, как черт из табакерки. Да и бегает он быстрее всех остальных, при этом выдерживая три попадания из дробовика. Еще он умеет затаиваться — убегает и не возвращается, приходится его выманивать, а он кааааак прыгнет… Вообщем, завтра буду пытаться разгадать его алгоритм.
Свежие комментарии