Продолжаю допиливать движения
Реализовал «бег на месте» при упирании в препятствие, как и в оригинале. До этого Балбес просто останавливался:
Но тут еще надо допиливать, есть некоторые глюки.
Блог разработчика
Реализовал «бег на месте» при упирании в препятствие, как и в оригинале. До этого Балбес просто останавливался:
Но тут еще надо допиливать, есть некоторые глюки.
Исправляю движения Балбеса:
— раньше он не реагировал на нажатие клавиш «Прыжок наискосок», если стоял, упершись в стену и ему некуда было прыгать вперед. Теперь Балбес при этом прыгает вверх, как и в оригинале. Если же стена встретилась уже во время прыжка, то он продолжает оставшееся движение уже только по вертикали, но все-таки вверх, как и в оригинале. Раньше просто сразу падал вниз.
— увеличил скорость при падении «наискосок», теперь падение выглядит более естественно.
Еще нужно исправить движение «вперед», если Балбес уперся в препятствие. У меня сейчас он просто не реагирует (идти-то некуда), а в оригинале занимается ходьбой на месте.
Когда я исправлю все баги — игра будет готова. Останется только сделать финальный мульт и внедрить пасхалки.
Пасхалку в Принце никто пока не нашел. Но в первом DOOM последний секрет был взят только в этом году 🙂
Так как я вышел на тропу борьбы с багами, первым делом решил заняться самым надоевшим багом — Шериф периодически проваливался под землю в самых странных местах. Причем, выглядело это хитро — приходишь в какой-нибудь кусок лабиринта, а Шериф там провалился в «окоп» и бродит из угла в угол, запертый в «канаве». Как он туда попадал? Я пытался поймать его конкретно на этом месте «провала», он приходил и бродил без всяких проблем по этому самому месту, не проваливась. Т.е. дело было не в ошибочном обнаружении какой-то ямы вместо обстановки, он реально нырял в яму только если его никто не видел. У меня уже были мысли, что он смещается туда при какой-то нештатной ситуации, типа «попал под падающую глыбу и отскочил сразу в стену». Но как это выяснить?
В этот раз я решил вывести его на чистую воду — отследить его маршрут. В процедуре вывода Шерифа я прописал «выводить Шерифа на экран всегда, независимо от того, в видимой части лабиринта он в этот момент или нет». И момент провала я увидел:
Т.е. Шериф действительно проваливался, а не телепортировался от каких-то нештатных ситуаций. Осталось выяснить, почему он не находил там землю. Оказалось (как обычно) все просто. На заднем плане в этом месте «шкаф», а шкаф в сжатом лабиринте представлен всего двумя кодами — признаком шкафа и кодом его содержимого. Полноценным шкафом это становится тогда, когда шкаф выводится на экран. А когда он выводится? Когда в окно со шкафом (вот фразочка!) заходит Балбес. Вот и получается, что Балбес своим присутствием делает шкаф полноценным, со стенами и ЗЕМЛЕЙ, а бедные Шерифы и Скелеты вынуждены бродить по лабиринтам, где вместо шкафа нули… Вот они и проваливаются в тартарары то там, то сям…
Как я пофиксил этот глюк? Стал ли я полноценно распаковывать невидимые шкафы, чтобы Шерифы не ныряли в ямы? Нет, теперь упаковщик лабиринтов вместо нулей в нижней линии шкафа пишет код земли, да и все. Шерифы теперь видят землю вместо недораспакованного шкафа, а на сам шкаф им плевать 🙂
Сделал режим паузы по клавише КТ. Экран паузы выглядит вот так:
В оригинале надпись PAUSE затирает обстановку:
Переходим к финальной части — исправление всех накопившихся глюков.
Все-таки я решил сделать индикатор режима звука в виде иконки в «подвале». Там есть неиспользуемое место, рядом с полем ключа. А если он кому-то кажется «неродным» — ну так в оригинале вообще звук не отключается, и если не отключать его, то индикатор и появляться не будет. Тогда все будет аутентично 🙂
Сам механизм выключения и включения музыки и звуков готов:
Осталось придумать, как информировать игрока об этих переключениях — выводить надписи типа «MUSIC OFF», которые потом надо стирать, или же какой-то индикатор выводить типа перечеркнутой ноты…
Теперь и управление от клавиатуры можно задать. Осталось сделать отключение звука и музыки. В оригинале управления звуком я не нашел.
Добавил настройку управления от джойстика:
В оригинале на джойстике, судя по всему, используется только одна кнопка — для удара. Надо подумать, не удобнее ли задействовать отдельно кнопку под прыжок, дополнительно к крестовине.
Свежие комментарии