Я создаю основную игру с использованием простого javascript и пытаюсь повернуть объект, чтобы он следовал за моей мышью.
Я попытался получить клиентскую мышь X и Y, а затем вычесть ширину и высоту холста, разделенную на два. Затем, взяв эти значения и введя их в Math.atan2()
. Тем не менее, я чувствую, что проблема может быть в моем преобразовании и повороте. Код ниже - это то, что я пробовал.
WIDTH = c.height;
HEIGHT = c.width;
document.onmousemove = function(ve){
let cX = -c.width / 2;
let cY = -c.height / 2;
let x = ve.offsetX;
let y = ve.offsetY;
var rX = cX + x - 8;
var rY = cY + y - 8;
player.angle = Math.atan2(rX, rY) / Math.PI * 180;
}
function update(){
var now = Date.now();
dt = now - lastUpdate;
ctx.clearRect(0, 0, WIDTH, HEIGHT);
ctx.setTransform(1, 0, 0, 1, WIDTH / 2, HEIGHT / 2);
ctx.rotate(player.angle + 10);
drawCircle(player.x, player.y, 20, 0, 180, "red");
tx.setTransform(1, 0, 0, 1, 0, 0);
}
setInterval(update, dt/10000);
Игрок вращается вокруг моей мыши в широких кругах без видимого рисунка.
Вот рисунок, показывающий, что происходит.
https://gyazo.com/006c99879ecf219791d059de14d98b74