Бегаем по карте. Roguelike на PICO-8. Часть 2
Что может быть проще, чем ходить на одну клеточку по шахматной доске? Берешь и рисуешь спрайт в новом месте.
Вот только стоит ли хранить положение героя в координатах? Стоит ли хранить состояния всех клеток доски?
Решил хранить только две координаты: X и Y левой нижней клетки. Если точнее левого верхнего угла этой клетки: PICO рисует спрайт от этой точки вниз и вправо (в сторону увеличения координат - Y идет сверху вниз).
Перевод из координат ячейки в координаты игры делает элементарная функция:
«Анимация» движения героя выглядит интереснее. Этот кусочек с трудом влез на экран, а часть условий возврата героя в обычное состояние обрезалось. Весь смысл этого кода — двигать героя не сразу на 8 пикселей, куда ему надо, а плавно кадр за кадром со скоростью speed передвигать его в нужную сторону. Для этого есть глобальная переменная timer, которую увеличиваем на единицу, потом двигаем спрайт в нужную сторону.
Не все решения были удачными с первого раза. Сначала хранил все 64 клетки массивом:
Удобно перемещать «фигуры»
соседние клетки вычисляются элементарно;
Состояние всех клеток понятно;
Проход по 64 клеткам — плевое дело;
По факту оказалось, что это крайне неудобно. Хранить состояние героя в отдельной таблице, а врагов в отдельной с ключами-координатами гораздо проще.
Итогом недели стал такой вот вариант с бегающим по сетке героем: файлик с PNG-картриджем на Я.Диске. Закидывайте PNG в PICO-8 на десктопе или в образовательную версию.





