Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Drag-Drop кораблей на таблице (https://javascript.ru/forum/dom-window/81752-drag-drop-korablejj-na-tablice.html)

john_canvas 24.01.2021 19:03

Drag-Drop кораблей на таблице
 
Всем привет!

Начал писать игру "Морской бой". Вдохновение черпаю отсюда: http://ru.battleship-game.org/

На моменте реализации функционала переноса кораблей встрял( Можете подсказать варианты реализации? По ссылке выше будет понятно, что я имею в виду

RX200 28.01.2021 09:59

Примерно так.
let down = (e, f) => {
	e.preventDefault();
	let onMouseUp = e => {
		document.removeEventListener('mouseup', onMouseUp);
		document.removeEventListener('mousemove', f);
	};
	document.addEventListener('mousemove', f);
	document.addEventListener('mouseup', onMouseUp);
};
elm.onmousedown = e => {
	down(e, e => {
		elm_x += e.movementX;
		elm_y += e.movementY;
		if(elm_x > max_x)elm_x = max_x;// Ограничения right примерно так, ещё три штуки допишите для left, top, bottom.
		//вводим координаты элементу. Например как ниже.
		elm.style.left = elm_x+'px';
		elm.style.top = elm_y+'px';
	});
};

Ещё чтоб корабли ровно вставали допишите, при отпускании, деление по модулю на шаг сетки. примерно так elm_x -= elm_x % step;


Часовой пояс GMT +3, время: 06:31.