У меня есть скрипт, который позволяет мне перемещать изображение вдоль пути, но мой путь отклоняется (на шестиугольной карте) примерно через 6 ходов.
Я знаю, что есть функция для этого, но сейчас я не могу найти, что делать. В настоящее время я использую заданное значение с плавающей запятой для перемещений x и y, которые отличаются от перемещения вверх или вниз (0 градусов и 180 градусов), которые являются заданным целочисленным значением.
Вот мой псевдо-код:
function doTranslate(deg, goX, goY) {
clearCanvas();
var context = surface.getContext('2d');
context.save();
context.translate(goX,goY);
context.rotate(DegToRads(deg));
context.drawImage(gamePiece, -10, -10);
context.restore();
}
Опять же, все это работает, но мои вычисленные значения для goX и goY являются глобальными переменными, которые обновляются в зависимости от направления, в котором мы движемся.
Прямо сейчас я использую число с плавающей точкой 18,3 для моего хода х, 9,8 для моего хода у, и значение int 21 для моих прямых шагов вверх или вниз.
Я помню из колледжа (только смутно), что мне нужно где-то там делать квадратные корни и операции PI, но сейчас я просто добавляю и вычитаю статические значения для каждого движения.
Кто-нибудь уже решил это?