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

28
Янв
2021

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

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

 

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

 

27
Янв
2021

Изворотливый скелет

Проявился-таки старый глюк с проваливанием под землю стражника, стоящего на краю. Все никак не могу отловить его в повторяемом виде. На этот раз уже скелет решил, что ему-то можно перемещаться под землей ))

27
Янв
2021

Конечно же стражники

  • Сделал загрузку стражника второго типа в 8-м лабиринте. Потому что первый стражник там круче других. Выглядят они пока одинаково. Надо крутому сделать другой прикид.
  • Сделал в третьем лабиринте альтернативное начало после прохождения дальней решетки, как и положено.
  • Установил скелета куда ему положено.
  • Отучил его помирать при падении с большой высоты.

    Теперь надо его научить вставать когда положено.

26
Янв
2021

Обучение стражника

Несколько месяцев назад стражник был обучен преследовать принца в бою. В том числе, прыгая для этого вниз. Но вот высоту стражник при этом не учитывал, потому норовил сигануть во всякие пропасти. Сегодня я решил его научить быть умнее. Сначала стражник вел себя так: пока принц был на два уровня ниже, стражник за ним не следовал. Но как только принц поднимался – стражник прыгал к принцу (ведь он ждет!), но пролетал мимо.

Я научил стражника оценивать высоту ямы, прежде чем прыгать в нее. И стражник стал останавливаться на краю, заглядывать вниз, говорить “Да ну нафиг!” и успокаивался. Что же будет если принц залезет на уровень стражника? А вот что:

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

Это никак не устраивало, конечно. Попытался добавить интеллекта стражнику. И тот нашел выход проще:

 

26
Янв
2021

Мальчик квадратный ковер выбивает

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

После отучения, принц завредничал и отказался падать в ямы перед коврами. Раз, говорит, ковры это препятствия, значится я перед ними падать в яму никак не могу. Они меня смущают. Могу только башкой, значит,  в энтот самый ковер упереться и торчать так, как баран по четвергам. Пришлось пихать его в ямы перед коврами, чтобы падал и не выпендривался.

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

В процессе всех этих мытарств выяснилось, что два места в 5-м лабиринте сделаны неверно. Плиты обваливались не там, где должны. А где должны – не обваливались. Пришлось переделывать лабиринт, чтобы должны было там где должны. И наоборот, что характерно, тоже.

Ну и напоследок, я решил быстренько поправить обмен местами стражника и принца при фехтовании. А то там беспредел какой-то был: то отскочат друг от друга на три метра, то спинами друг другу повернутся. Хаос и аквадискотека, короче. Пришлось отучать.  “Быстренько” вылилось в три часа скрипения мозгами. Вроде получилось.

 

18
Янв
2021

Байки из склепа

Начал делать потерю “жизни” стражником при падении его с большой высоты. Т.е. если стражника спихнуть вниз, то он должен потерять одну “жизнь” или вообще убиться, если высота была слишком большой. Сделал примерно, решил проверить как это работает. Нашел удобное место в 9-м лабиринте, иду к нему. По пути попадаются другие стражники, одного просто убил, другого запихнул в пилу. Прохожу обратно мимо “просто убитого”, а он почему-то лежит в виде запиленного, хотя пилы рядом нет. Записал в список глюков, требующих исправления “не сохраняется тип трупа”.  Иду дальше, попадается еще стражник. Скидываю его на шипы. Захожу в нужное окно – и все виснет. Хмм… Давненько такого не было.

Начинаю все снова. Иду, расправляюсь со стражниками, опять вижу, что надо исправить эту фигню с не тем видом трупов. В оригинале, кстати, трупы вообще просто исчезают, и я начинаю понимать почему. Но это потом, сначала надо понять, почему все виснет в том окне. Дохожу до проблемного окна – ничего не виснет. Интересно. С чем же был связан глюк? Неужто с новой обработкой падения стражника? Проверяю – вроде ничего там криминального.

Ок, иду снова. Убиваю стражников, скидываю одного на шипы, т.к. шипы глубоко внизу и, может быть, в процессе полета новая обработка падения портит память? Вроде осталось все в норме. Только вот эти трупы несовпадающего вида… Но это потом.

Дохожу до проблемного окна. Не вхожу в него, сохраняю состояние памяти, чтобы сравнить. И тут вижу, что внизу торчит башка стражника. А чего он там торчит? Там был убитый стражник, но почему он забит в землю? А потому что спрайт “нормального трупа” лежит на плите, а тот, что на шипах – он гораздо выше над плитой выводится… И так как адрес вывода этого “обычного трупа” сохранен, а “вид трупа” – нет, то тупо берется состояние последнего убитого стражника. А последний был на шипах. И вот “заколотый на шипах” стражник выведен в самом низу в полную высоту, вместо обычного спрайта, затирая память.

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

В оригинале все нелогично – исчезают все трупы, кроме тех, что лежат на плитах, управляющих решетками. Потому что лежание на плите оставляет решетку открытой.

08
Янв
2021

Стражники 2021

Много исправлений в стражниках. Во-первых, это исправление самих алгоритмов боя, они стали более близки к оригиналу. Во-вторых, куча исправлений:

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

Но глюки еще есть, завтра продолжу охоту на них 🙂

 

 

25
Дек
2020

Стражники и баги

У стражников, конечно, еще полно багов и недоделок. Во-первых, стражник, падая вниз, не учитывает высоту и остается живым, если ему не попались внизу шипы. А в оригинале стражник теряет жизнь, если пролетел два этажа. И я даже видел, что стражник, теряя последнюю жизнь от падения, помирал. Во-вторых, в оригинальном принце невозможно получить двух стражников на экране одновременно, и для этого автор применил ухищрения. Как я не заманивал одного стражника в окно, где уже есть второй – он не хотел идти дальше. Знает, гад, что два стражника это перебор. У меня же пока стражник охотно бежит за принцем везде. Надо его отучать от этого. Во втором принце, кстати, стражники уже толпами бегают.

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

Попытался переделать спрайты дворцовых уровней в другую палитру, но что-то ничего удобоваримого не получилось. Цвета получаются не менее вырвиглазные, чем сейчас.

Понемногу движемся 🙂

 

21
Дек
2020

Все фигуры расставлены

Как заявляли в сериале “Тьма”, все фигуры расставлены. Все стражники поставлены на свои места, все заимели полагающееся количество “жизней” и смотрят в нужные стороны 🙂 Попутно обнаружилась, конечно, кучка багов. Теперь буду бороться с ними. Два уже поправил – принц не мог достать меч, стоя на краю пропасти (падал в эту самую пропасть) и мог висеть на уже упавшей плите, нагло болтая ногами. Обнаружились неверно управляемые решетки, а одна и вовсе отсутствовала.

Неприятная новость – похоже, утеряны спрайты дворцовой обстановки в виде отдельных файлов. Придется выковыривать их из уже собранного блока данных palace, чтобы перерисовать.