Category: Блог

23
Фев
2021

Снова неплохо поохотился

Сегодня неплохо поохотился на баги и недоделки:

  • FIX не уменьшаются жизни, если стражник теряет их в другом окне
  • FIX стражник улетел и закололся, а жизни все равно есть
  • FIX у стражника нет «пустых» жизней, они сразу стираются
  • FIX при приземлении после прыжка принц не издает звука и стражник его не слышит
  • FIX в 13м плита, падающая на плиту, не сразу ее уносит, а начинает качать. Или это принц
  • FIX после смерти визиря должна открыться дверь
  • FIX в 10м плита падает на кнопку и решетка начинает открываться с самого закрытого состояния, хотя итак была открыта
  • FIX при фехтовании принц на шипах сразу убивается
  • FIX при входе в третий у скелета и в 13м звук двери не нужен!
  • FIX при вставании скелета черные дыры! видимо выводится только полплиты
  • FIX при блоке удара стражником раздается звук нажатия плиты и потом звон
  • FIX звуки фехтования отстают на кадр
  • FIX шипы в крайнем положении все время выдают звук, пока на них сверху летит стражник или принц
  • FIX не проваливается, пока сидит в контузии, а под ним ушла плита
  • FIX у визиря не выводятся жизни
  • FIX в 12м дверь сразу закрыта!
  • FIX обвал плит в 13м должен быть однократным
21
Фев
2021

Ох уж эти персы со своими коврами

Взял очередную запись о баге: «в 10м лабиринте две решетки друг над другом и падающая плита при падении портит вторую решетку». Ок, посмотрим!

Итак, действительно, решетки две, одна над другой:

Справа от верхней решетки плита, которая при обрушении затирает часть нижней решетки. С чего бы? Начал разбираться — оказывается, вовсе не плита затирает нижнюю решетку, а верхняя решетка. Когда решетка движется, она выводит сохраненный фон справа, где изначально лежит плита. Потом плита исчезает, решетка запоминает новый фон, а там на мгновение мелькает пустота при стирании начавшей падать плиты. Откуда же берется пустота-то? Ведь должна вывестись нижняя решетка и заполнить ее. Ага, решетка-то выводится, а вот самый верхний ее уголок выводится отдельно. Ведь он может вообще отсутствовать (если над решеткой кирпич, к примеру). Потому углы эти выводятся только тогда, когда решетка видна целиком. А эта решетка изначально закрыта той самой (еще не обвалившейся) плитой. Такс, я же уже делал что-то подобное, когда плиты обваливал перед решеткой… Ага, там решетка была сверху, а тут и сверху и снизу…. И для верхней надо новый фон взять, и для нижней… Интересно, а есть ли еще такие места вообще в принце, или я только ради одного места напихаю лишних заморочек с фонами?

Надо быстро загуглить карту лабиринтов принца да и глянуть. Гуглю. Что-то карт досовского принца не попадается, только карты клонов. И что там в этом месте? А вот что:

Какая-то ересь, однако. Небось чуваки тоже столкнулись с этой проблемой и решили не заморачиваться с такой сложной комбинацией решеток, просто убрав ее. Может и мне выкинуть ее нафиг? Авось никто и не заметит )) А что там в оригинале-то?

 

Е-мое… Да как так-то??  В оригинале тоже нет решетки здесь! Ковер повесили! А почему я весь день мучаюсь с этими долбаными фонами?? Надо тоже поставить там ковер!

Запускаю редактор, ставлю ковер, ааа….. ага…. вот почему тут решетка — потому что нет у нас такого элемента «столб с плитой». Есть только столб. И есть решетка, где все это в комплекте. И, судя по всему, в далекие 90-е, я решил добавить элемент потом, а пока просто впендюрил туда решетку. И вот теперь сам же и мучаюсь, изобретая механизмы подмены фонов для всяких там углов решеток. Добавлять элемент — это лишняя память опять. А не состряпать ли нам его из имеющихся запчастей? Можно же вывести просто левую часть решетки и на нее ковер нацепить.

Вуаля:

Ну и дополнительно поправил пару багов:

  • вывод падающих плит и решеток был не в той последовательности.
  • буферы фона для шипов и падающих плит пересекались, в итоге они не могли быть одновременно на экране, если с ними одновременно взаимодействовал принц
  • принц застревал у решетки в определенных условиях
19
Фев
2021

Продолжаем фиксить

Сегодня победил несколько багов:

  • исправил падение от закрытой решетки
  • сделал «отодвигание» принца закрывающейся решеткой, когда она начинает опускаться прямо в него
  • исправил глюк с выкидыванием принца из-за закрытой решетки
19
Фев
2021

Мышь

Переделал движения мыши. Теперь она ждет сколько надо перед появлением, нажимает и освобождает кнопки как положено.

17
Фев
2021

И снова здравствуйте!

После небольшого перерыва (пришлось немного отвлечься) снова занялся принцем. Исправил «отпускание» кнопки мышью, теперь она делает это как положено. Нашел несколько новых багов, куда же без них:

  • от решетки принц падает странно, в итоге влетая в кирпич
  • движения мыши надо изменить, чтобы она верно нажимала плиту
  • когда решетка закрывается за спиной принца, все-таки надо сдвигать его вперед на байт, иначе он может сдвинуться сквозь решетку назад
01
Фев
2021

Исправлена куча багов

Сегодня славно поохотился на баги:

  • не стирался меч принца, который был запилен пилой при фехтовании
  • исправлены связи решеток в 4 и 7 лабиринтах
  • принц теперь не пьет стоя вплотную спиной к стене справа. В оригинале он тоже в этом положении не пьет, как оказалось. Потому что иначе он влезет в стену, т.к. сильно прогибается назад.
  • теперь слезает верно с края плиты, если умудрился устоять на краю половиной стопы
  • стражник теперь верно определяет пилу за спиной и не стоит как столб
  • правильно закрываем решетки, на управляющие плиты которых упал кирпич или труп
  • исправил наложение маски фрезы на дохлого стражника
  • наконец-то принц не проваливается на строку в кнопку, давно надо было исправить
  • исправлено наложение маски кнопки на лежачего принца
  • труп стражника перестал левитировать над кнопкой
31
Янв
2021

И пилим!

Сегодня сделал кувшин левитации, ура! Попутно выяснилось, что решетки держат паузу перед опусканием слишком долго — в три раза дольше, чем надо. Исправил. Еще исправил:

  • глюк с закрывающейся дверью выхода с уровня — если два раза наступить на открывающую ее плиту, то дверь закрывалась, как обычная решетка.
  • оптимизировал копирование на видимый экран (иногда копировалось больше, чем надо. А на столбец в два байта шириной и высотой во весь спрайт)
  • исправил глюк с остававшимся мусором от улетевшего в нижний экран стражника
  • принц при падении приземлялся на байт ближе, чем должен

    А также нашел еще несколько глюков:

  • если выпить кувшин, стоя спиной к стене, то принц вмонтируется в стену
  • пила за спиной стражника вводит его в ступор (конечно же он просто считает, что пила стоит между ним и принцем)
  • если принца запилит пила во время фехтования, то меч остается висеть в воздухе
  • на труп стражника почему-то перестает накладываться маска пилы
  • перепутаны кнопки управления решетками в 4-м и 7-м лабиринтах

 

30
Янв
2021

Пилите, Шура, пилите

Сегодня доделывал «высотомер», который определяет как низко пал принц. Рано я вчера радовался — как выяснилось, не всегда высота измерялась правильно. Принц ведь умеет не только вертикально падать, он еще и со смещением вперед летает, если прыгнул с ускорением. Выкинул этот костыльный счетчик, сделал другой. И он работает.

В некоторых случаях принц вроде бы и убивался, но вставал, как ни в чем не бывало. При этом жизней у него уже не было и надпись «Press any key» выводилась. Но трупа не было. Оказалось, это последствия того, что труп все-таки ищет под собой яму или кнопку. В оригинале он ищет только кнопки, так что если там принц упадет на «ветхий» пол, то плита под ним упадет, а труп останется висеть в воздухе. А я когда делал определение кнопок под трупом (должен же он своим весом ее нажать), то стала срабатывать и проверка на яму. В итоге труп стал падать вместе с «ветхим» полом, потом еще может на шипах заколоться — такой затейник этот труп… Решил так и оставить. Но вот и последствия этих зомби-развлечений: труп иногда еще и вставал! Пришлось отучать.

Исправил баг с шипами, когда принц влетает в экран сверху прямо на шипы, а шипы еще не готовы. Теперь они его всегда рады встретить сразу по прилету.

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

Осталось что? Вот что:

  • сделать отдельную раскраску для стражника в 8-м
  • кровища на пиле
  • кувшин левитации
  • звуки
  • музыка
  • загрузка из любой БК-шной OS
  • заставки
  • демо-режим
  • задание управления от джойстика
  • сплясать в ластах на столе
29
Янв
2021

Yessss!!

Сегодня я отловил этот дурацкий глюк с проваливанием стражника в пол. Проявлялся он редко, потому я иногда думал, что он и вовсе «сам исправился». Фиг там! Он проявлялся только когда стражник стоял за плиту от края, но «задняя» нога следующего спрайта попадала над ямой. И тогда, найдя яму по задним координатам, он, какого-то фига, падал  в яму по ПЕРЕДНИМ координатам. А там, конечно, никакой ямы не было. И я исправил эту ересь!

А заодно я исправил еще один надоевший глюк с тем, что принц умудрялся влететь в стену, когда падал в узкие пропасти. Была перепутана ширина спрайта и координата, в которую корректировался принц. Пофикшено.

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

Эти три глюка давно и изрядно бесили меня.

28
Янв
2021

Скелет — читер!

Разбираюсь со скелетом, и вдруг обнаруживаю, что он в оригинале ведет себя довольно странно. Если его спихнуть в пропасть вправо — он не будет стоять под стеной, он почему-то окажется в середине экрана! Но это еще ерунда. Если скелета спихнуть влево, то он вообще должен упасть на самый нижний уровень (как он и падал у меня). Но он все равно будет ждать принца посреди экрана. Т.е., в оригинале скелет залезает на уровень вверх, чтобы там поджидать принца, хотя ни один стражник такого не умеет ))

 

Реализовал все это дело, теперь скелет (чуть не написал «мой скелет») в нашем принце тоже ждет принца где положено.