Author: grf

12
Окт
2023

Отловлен древний баг!

Так как я вышел на тропу борьбы с багами, первым делом решил заняться самым надоевшим багом — Шериф периодически проваливался под землю в самых странных местах. Причем, выглядело это хитро — приходишь в какой-нибудь кусок лабиринта, а Шериф там провалился в «окоп» и бродит из угла в угол, запертый в «канаве». Как он туда попадал? Я пытался поймать его конкретно на этом месте «провала», он приходил и бродил без всяких проблем по этому самому месту, не проваливась. Т.е. дело было не в ошибочном обнаружении какой-то ямы вместо обстановки, он реально нырял в яму только если его никто не видел. У меня уже были мысли, что он смещается туда при какой-то нештатной ситуации, типа «попал под падающую глыбу и отскочил сразу в стену». Но как это выяснить?

В этот раз я решил вывести его на чистую воду — отследить его маршрут. В процедуре вывода Шерифа я прописал «выводить Шерифа на экран всегда, независимо от того, в видимой части лабиринта он в этот момент или нет». И момент провала я увидел:

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

Как я пофиксил этот глюк? Стал ли я полноценно распаковывать невидимые шкафы, чтобы Шерифы не ныряли в ямы? Нет, теперь упаковщик лабиринтов вместо нулей в нижней линии шкафа пишет код земли, да и все. Шерифы теперь видят землю вместо недораспакованного шкафа, а на сам шкаф им плевать 🙂

 

 

11
Окт
2023

Индикатор режима звука

Все-таки я решил сделать индикатор режима звука в виде иконки в «подвале». Там есть неиспользуемое место, рядом с полем ключа. А если он кому-то кажется «неродным» — ну так в оригинале вообще звук не отключается, и если не отключать его, то индикатор и появляться не будет. Тогда все будет аутентично 🙂

11
Окт
2023

Вкл/выкл звука и музыки

Сам механизм выключения и включения музыки и звуков готов:

  • АР2+S — выключить/включить и звуки и музыку (играть в тишине)
  • АР2+M — выключить/включить только музыку (играть без музыки, но со звуковыми эффектами)

Осталось придумать, как информировать игрока об этих переключениях — выводить надписи типа «MUSIC OFF», которые потом надо стирать, или же какой-то индикатор выводить типа перечеркнутой ноты…

09
Окт
2023

Настройка управления: джойстик

Добавил настройку управления от джойстика:

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

05
Окт
2023

Двигаемся дальше

Работы привалило, но по-немногу двигаемся:

  • немного перераспределил данные, перенес некоторые спрайты, это дало кусок памяти в нужной странице
  • начал делать задание управление от клавиатуры/джойстика (в оригинале этого нет, кстати)

 

28
Сен
2023

Новая версия bkemu — скоростная!

Новая фича bkemu «максимальная скорость процессора» сократила время сборки с 15 минут до 30 секунд! Огромное спасибо автору! Теперь и в поездках можно кодить для БК, компилируя с максимальной скоростью!

 

27
Сен
2023

Тиканье часов

Нашел конвертированный с MSX звук часов, попробовал… В на 48Гц звучит как шкрябание. Придется тиканье часов делать самому. Где там был VortexTracker…

21
Сен
2023

Часы готовы

Артефакт «Часы» почти готов, только тикание часов нужно добавить. Осталось сделать всякие сервисные функции типа задания управления, вкл/выкл звука и демо. А, ну и пасхалку встроить.

И выловить глюки 🙂