@reaget

Как лучше работать с сеткой если нужны анимации при передвижении?

Здравствуйте!
Начал делать игру в которой использую сетку. Генерируется доска NxM, по ней передвигается персонаж.

Первый способ такой: мы передвигаем персонажа по индексам клеток, то есть сделать шаг вправо - по иксу увеличили значение на один и так мы шагаем по нашей доске. Но в этом способе я не знаю как передвигать персонажа плавно из клетки в клетку.
5a310fc971d7c026456413.pngВторой способ такой: у нас нет привязки к индексам сетки, мы передвигаем персонажа по, так сказать, обычным координатам. Но здесь трудности с центровкой персонажа внутри одной клетки.
5a3111269377f127701255.png

Вопрос: как лучше работать с сеткой, если персонаж должен по ней как бы скользить?
И как это делаете вы?
Спасибо :)
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Есть логические координаты (координаты внутри сетки, 4,2 в вашем примере), которые используются для бизнес-логики, и есть физические, которые используются для вывода на экран. Физические получаются из логических простой формулой (типа physicalX = logicalX * 10 плюс смещение самой сетки от края экрана плюс границы и отступы при необходимости).
Насчет перемещения: высчитываем конечные физические и плавно меняем фактические физические (requestAnimationFrame либо метод из движка), пока не совпадут с конечными. Логические координаты меняем в любой момент в зависимости от того, как удобнее рассчитывать последствия хода.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы