Tagged: goonies

16
Ноя
2023

Забытые баги

Почему-то я потерял половину списка багов и сижу радуюсь, что мало осталось работы. А вот фиг там! Но сегодня неплохо пофиксил:

  • BUG: при спуске по лиане клавиша вниз — сделал наконец-то отмену автоповтора при слезании, а то Балбес не останавливался на этаже, если находил сразу же лиану вниз, а продолжал спускаться уже по ней
  • BUG: при пересечении экрана вниз кто-то сталкивается с Балбесом — а точнее, если голова Балбеса была в одном окне, а тело в другом, то нижняя координата считалась неверно. И потому он «занимал» весь экран с Y=0 по Y=25 и первый попавшийся враг в этом диапазоне наносил урон
  • BUG: иногда при сработке щита звук урона — да, при срабатывании щита не сбрасывался флаг и тут же назначался общий звук урона
  • BUG: при наколачивании нечисти удар в прыжке не считается? — удар считался, но набитая нечисть подсчитывалась только при ударе на земле
  • BUG: при накоплении мышь и череп одно и тоже?? — была кривая проверка

Что осталось на данный момент:

BUG: в золотом нет призрака?
BUG: Балбес проваливается в 18-03, во втором через флаг в земле?
BUG: кость + пуля = порча фона
BUG: скелет не запрыгивает? сцена 11-02, начало GOON DOCKS
BUG: подарки с жизнями и опытом не работают
BUG: при отключенной музыке нет паузы после game over
BUG: ноты при вопле выводить ближе

15
Ноя
2023

Движемся по списку багов

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

+no BUG: МОНЕТА СВЕРХУ НА ГНОМА = ЗАВИС?
+no BUG: монета в стену завис?
+BUG: при падении на череп и ударе проваливается

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

Пока что список багов выглядит так:

BUG: подарки с жизнями и опытом не работают
BUG: при спуске по лиане клавиша вниз !
BUG: при пересечении экрана вниз кто-то сталкивается с Балбесом?
BUG: при отключенной музыке нет паузы после game over
BUG: иногда при сработке щита звук урона

14
Ноя
2023

Неплохая охота на баги

Исправил несколько давно бесивших багов:

  • Вопящий Шериф при первом появлении ненадолго превращался в Стрелка, а ведь у него нет фаз стрельбы — он вопит. Сделал ему отдельное движение, без «стрельбы»
  • Мышь отучена кусать Балбеса методом бесконтактного боя (уточнено расстояние между Мышью и Балбесом по вертикали)
  • спрайт «БУМ» при ударе по врагам выводился на месте «будущего» положения врага, а мы-то всегда видим «прошлое» положение, т.к. отображается уже готовый экран.
  • звуку вопля Шерифа назначен высший приоритет, т.к. до этого его заглушала падающая глыба

Оставшиеся баги (на данный момент):

BUG: подарки с жизнями и опытом не работают
BUG: МОНЕТА СВЕРХУ НА ГНОМА = ЗАВИС?
BUG: при спуске по лиане клавиша вниз !
BUG: при пересечении экрана вниз кто-то сталкивается с Балбесом?
BUG: монета в стену завис?
BUG: при падении на череп и ударе проваливается
BUG: при отключенной музыке нет паузы после game over
BUG: иногда при сработке щита звук урона
BUG: кость + пуля = порча фона
BUG: в золотом нет призрака?
BUG: Балбес проваливается через флаг в земле
BUG: скелет не запрыгивает? сцена 10-03
BUG: капля не исчезает, если нанесла урон в самой верхней своей позиции
BUG: ходим по водопадам

Возможно, какие-то баги уже «исправились» в процессе исправления других.

13
Ноя
2023

И снова о стенах

Как оказалось, стена немного неверно давит Шерифов, под раздачу попадали и монеты, которые летели на этой горизонтали. Поправил.

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

09
Ноя
2023

Допиливаем движок

Добавил необходимую фичу: растущая стена теперь давит как Балбеса, так и Шерифов/Скелетов. Для реализации пришлось допиливать функцию определения столкновения спрайтов, но это итак было нужно делать. До этого времени удары били нечисть весьма вольготно, а в оригинале по Мыши еще попробуй попади (не зря она синусоиды выписывает), да и прыгающий череп убивается в верхнем положении только если Балбес при этом тоже бьет в прыжке. Сейчас как раз это я и начал реализовывать. Попутно исправлен баг с некорректным завершением игры при задавливании мешком.

 

08
Ноя
2023

Очередные фиксы

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

Сегодняшний улов:

  • урон от столкновения с Шерифом на канате не отображался на «табло»
  • Скелеты и Мышь после рождения не разворачивались в сторону Балбеса, как должны
  • не сдвигался указатель списка локальных врагов, когда создавалась Мышь и при этом была единственным врагом в текущем окне
07
Ноя
2023

Очередные фиксы

  • появление Мыши могло остановить один из черепов (затиралось лишнее слово в списке)
  • рождающийся скелет наносил урон (я это уже правил, но строка оказалась закомментирована, видимо, нарвусь на причину  в будущем)
  • изменен метод RND повышенного шанса выбивания монет каплями (при взятом молотке)
05
Ноя
2023

Последняя капля

Как оказалось, остался один спрайт старого формата — это спрайт брызг от капель. Переделал его и его вывод. Оптимизировал еще пару моментов — выбор страницы для спрайтов при выводе теперь происходит быстрее.

04
Ноя
2023

Оптимизация

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

 

04
Ноя
2023

Доделываю мышь

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