This is perfect, code for mousdown movement 360 degrees
function getMousePosition(event) {
const rect = canvas.getBoundingClientRect();
return {
x: event.clientX - rect.left,
y: event.clientY - rect.top
};
}
function calculateAngle(mouseX, mouseY, pacmanX, pacmanY) {
const dx = mouseX - pacmanX;
const dy = mouseY - pacmanY;
let angle = Math.atan2(dy, dx) * (180 / Math.PI); // Angle in degrees
// Normalize angle to be between 0 and 360 degrees
if (angle < 0) {
angle += 360;
}
return angle;
}
canvas.addEventListener('mouseup', e => {
keys.right.pressed = false
keys.down.pressed = false
keys.up.pressed = false
keys.left.pressed = false
})
canvas.addEventListener('pointerup', e => {
keys.right.pressed = false
keys.down.pressed = false
keys.up.pressed = false
keys.left.pressed = false
})
canvas.addEventListener('pointerdown', e => {
const mousePoint = getMousePosition(e);
const pacmanCenterX = pacman.position.x;
const pacmanCenterY = pacman.position.y;
const angle = calculateAngle(mousePoint.x, mousePoint.y, pacmanCenterX, pacmanCenterY);
console.log('Angle:', angle.toFixed(2), 'degrees');
if(angle > 315 || angle < 45){
keys.right.pressed = true
} else
if(angle > 215 && angle < 315){
keys.up.pressed = true
} else
if(angle > 135 && angle < 215){
keys.left.pressed = true
} else
if(angle > 45 && angle < 135){
keys.down.pressed = true
}
});