Category: Разработка

08
Ноя
2020

Слишком точная копия

Разбираюсь с тем, как должен вести себя принц, упавший на “ненадежные” плиты, которые рушатся. Если у принца последняя жизнь и он теряет ее при падении, то принц переходит в состояние “помер”. А плита-то активирована и потом падает. И принц остается висеть в воздухе.

Стал смотреть, как этот вопрос решен в оригинале, и вдруг:

И что, блин, делать? 🙂

 

07
Ноя
2020

12+13 лабиринт

Поделил 12 лабиринт на два, теперь мультики не портят данные. Сделал переход из 12-го в “13-й”. Попутно выяснилось, что в наличии два жутких глюка – во-первых, падающая плита при падении на такую же “нестабильную” плиту не уносила ее с собой вниз, как положено, а застревала на ней. Во-вторых, падающие плиты выводились неверно – поверх них выводился задний план. Оба глюка побеждены. И оба они были очень древними 🙂 Ну и еще мелкий глюк со смещением маски верхней части колонн исправлен, но это ерунда.

04
Ноя
2020

12 лабиринт

Нашел в чем была проблема с новым 12м лабиринтом. Последние два слова в каждом лабиринте представляют собой адрес в экране, куда вывести принца после входа и слово состояния принца (движение), которое он должен получить при входе. Т.к. в некоторые лабиринты принц “впадает” (как в 7-й), то это первое движение вовсе не везде одинаково. К тому же, после входа принц смотрит в определенную сторону, а вовсе не в одну и ту же. Все это есть в слове состояния принца. И вот это самое слово состояния и адрес вывода при сохранении лабиринта из редактора тупо обнулялись! Видимо тогда нам было лень делать механизм назначения движения и мы решили, что впишем от руки потом, лабиринтов-то всего 12. И вписали, что характерно. А вот я об этом забыл 🙂 Ну, вписал и сейчас, не проблема 🙂

Лабиринт заработал. Заодно проверил возможность пройти череду прыжков в 12-м, это весьма сложное место и в оригинале, с нормальной клавиатурой. А уж на БК с ее “особенностями” и подавно. Мне было интересно, реально ли пропрыгать этот каскад в нашем принце. Оказалось, что реально, по крайней мере на эмуляторе БК. Но и глюк нашелся, куда без этого: если при смене экрана принц бежит по обваливающейся плите, то он сразу падает. Будем исправлять 🙂

P.S. проблему с плитой и провалом пофиксил, но ролик получился эпичный ))

04
Ноя
2020

Хитрый глюк

Проверял срабатывание мультика с мышью в 8м лабиринте, когда она нажимает плиту. Нашел кучу глюков, но в итоге мышь-таки выбежала. Но самый прикол был потом – я добежал до выхода и увидел, что дверь ЗАКРЫВАЕТСЯ! Типа слишком долго провозился, выход закрыт )) Последствие переделки
механизма решеток 🙂

 

04
Ноя
2020

12 лабиринт, продолжение

Оказалось, что я уже забыл как правильно делать лабиринты в редакторе 🙂 Набрал лабиринт, сделал связь решеток с кнопками, загружаю – виснет при входе в 12 лабиринт. Пришлось лезть в исходники редактора и смотреть как на самом деле нужно создавать списки связей решеток и кнопок. Выяснилось, что и положение решеток “открыто-закрыто” тоже надо было задавать. В принципе, это логично, но я просто уже забыл об этом. Вообщем, первая попытка сделать новый лабиринт провалилась, буду разбираться.

03
Ноя
2020

Средства разработки

Разработку я продолжаю “родными” БКшными средствами – ассемблер micro1103 (модифицированный Евгением Пашигоровым под работу с bat-файлами), редактор текста Vortex, графредактор GRED V003. Все это под операционкой ANDOS и работает на эмуляторе gid. Железная БК11М с контроллером СМК-512 у меня тоже есть в наличии, но пока что лежит в шкафу 🙂

Так что все спрайты я рисую с помощью БКшного графредактора, без всяких этих ваших фотошопов, и выглядит это вот так:

03
Ноя
2020

12 лабиринт

При отладке финального боя в 12 лабиринте я сразу увидел, что с лабиринтом что-то не так. При падении вниз (12м это часто) возродился самый старый глюк – зависание при влете в новое окно внизу. Сразу стало ясно, что лабиринт почему-то портится, раньше так бывало при пролете падающих плит. Потом буферы фона иногда залезали в лабиринт. Но теперь-то памяти валом, все буферы давно в расширенном ОЗУ СМК-512! Загрузил лабиринт в редактор, а там кошмар в нижней половине лабиринта, хаос из кувшинов, пил и прочих элементов. При этом в верхней части все ок, где принц бьется с двойником. Взял старую версию лабиринта, вкатил в нее таблицы мультиков (они хранятся в конце файла лабиринта, чтобы не грузить их отдельно), гружу в принца – снова зависание. Открываю в редакторе – снова хаос. Чтобы это значило? А значило это просто то, что 12 лабиринт оказался слишком большим и вылезал в область мультиков. Таким образом, вкатывая в него таблицы мультфильмов, я сам его и портил. Придется разделять 12й лабиринт на две части. Собственно, в оригинальном принце это тоже так и есть – после битвы с двойником принц возрождается уже в другой половине лабиринта, а не в самом начале. Самое смешное, что теперь как раз технически будет 13 лабиринтов, как и утверждал SashaPont на канале БК0010/11М World в споре о том, сколько лабиринтов в Принце 🙂

Сделал карту 12 уровня, буду пилить на два 🙂

03
Ноя
2020

Финальный бой

На данный момент я сделал сцену финального боя принца с двойником. Двойник, конечно, работает на движке стражника, т.к. должен драться с принцем. Но у стражников нет движений типа “шаг вперед без меча”, “достать меч”, “убрать меч”, “бежать”. Потому двойник, это не совсем стражник 🙂 В свое время (в давние времена) мной был написан механизм воспроизведения “мультиков”, который воспроизводил движения любого объекта, описанного в игре с помощью таблиц движений. Это и сам принц, и стражники и мышь в 8-м лабиринте. С помощью этих “мультиков” и выводится двойник, выпрыгивающий из зеркала, наступающий на плиту в 6м, выпивающий кувшин в 5м лабиринтах. Но это были просто мультики, которые воспроизводились без оглядки на обстановку, ямы, принца. А в финальном бою надо было скрестить эти мультики с реальными действиями двойника в ответ на действия принца, к тому же двойник должен еще и на обстановку реагировать (упасть в яму, если она ему попадется), разворачиваться в сторону принца и т.д. К тому же, мультики воспроизводились тупо с заданного места в экране, а тут двойник может начать складывать меч в любом месте, смотря где оказался в ходе боя. Потому пришлось поломать голову, но все получилось, ура! 🙂