Category: Блог

22
Сен
2021

Скорость

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

07
Сен
2021

Под стук колес

Пока ехал в поезде, пофиксил несколько багов:

  • после смерти в бою при выходе из двери Принц приседал (в буфере макрокоманд оставался код команды «клавиша вниз»
  • крайние правые шипы выводились неверно
  • была слишком маленькая пауза перед рестартом игры после «Press button to continue»
  • если на голову падала плита и отнимала последнюю жизнь — Принц не умирал

 

06
Сен
2021

Вот это поворот!

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

Выкинув задержку вообще (для теста) я получил вот такую скорость работы движка:

Сделал пример для фехтования. В начале ролика записано как работало раньше, потом идет запись работы опять без какой-либо задержки. Фехтование-то, оказывается, может быть куда живее!

Оказывается, был запас по скорости-то! Теперь осталось выровнять все с помощью новой динамической задержки, по таймеру.

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

 

02
Сен
2021

Фиксим баги, снова

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

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

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

 

 

29
Авг
2021

Настройка управления

Сделал настройку управления от клавиатуры по АР2+K. По АР2+J можно задать и джойстик. Если я еще и сделаю выбор устройства вывода звука (AY или пищалка), то наверное стоит сделать общее меню по клавише ПОВТ 🙂 Да, на видео видна новая «подвальная» решетка в интерьере 🙂