Показать сообщение отдельно
  #3 (permalink)  
Старый 08.01.2016, 00:59
Новичок на форуме
Отправить личное сообщение для Byrger Посмотреть профиль Найти все сообщения от Byrger
 
Регистрация: 07.01.2016
Сообщений: 3

Сообщение от Lemme Посмотреть сообщение
Я бы получал координаты мыши и конвертировал их в координаты квадрата на карте.

// 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
}

Я знаю координаты мыши и координаты игрока.
Он всегда в центре поля. Эта точка X 13 Y 13 или по пикселям 312px*312px


Спасибо за то что вы описали, но мне нужно движение в любом направлении, а не только вверх,вних,влево в право. В этом у меня и загвоздка. Как-то через угол надо находить
Ответить с цитированием