Я бы получал координаты мыши и конвертировал их в координаты квадрата на карте.
// x,y = e.layerX, e.layerY
// size = размер квадрата, например - 50.
function getCoords(x,y) {
return {
x: Math.floor(x / size),
y: Math.floor(y / size)
}
}
Теперь нужно знать в каком квадрате xy находится игрок.
// если игрок всегда находится в центре карты, то это легко получить и опять же конвертировать в координаты.
// допустим игрок находится тут.
var playerCoords = { x: 10, y: 20 };
Передвижение игрока.
canvas.onmousemove = function(e) {
var coords = getCoords(e.layerX, e.layerY);
// сверяем координаты игрока и координаты мыши, после этого сдвигаем карту в нужное направление.
if (coords.x > playerCoords.x) {
// move right
}
//etc
}
|