21
Фев
2021

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

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

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

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

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

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

 

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

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

Вуаля:

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

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

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован.