Files
echoes/client/js/movement.js

37 lines
903 B
JavaScript

/*
movement.js
ecoute les inputs clavier et annonce au serveur quand une porte est atteinte
*/
import { maze } from "./maze.js";
import { player } from "./player.js";
import { render } from "./canvas.js";
import { socket } from "./socket.js";
import { roleState } from "./role.js";
export function setupMovement() {
document.addEventListener("keydown", (e) => {
if (roleState.current !== "explorateur") return;
let newX = player.x;
let newY = player.y;
if (e.key === "ArrowUp") newY--;
else if (e.key === "ArrowDown") newY++;
else if (e.key === "ArrowLeft") newX--;
else if (e.key === "ArrowRight") newX++;
else return;
if (maze[newY][newX] === 0 || maze[newY][newX] === 2) {
player.x = newX;
player.y = newY;
render();
if (maze[newY][newX] === 2) {
socket.emit("door_reached", { x: newX, y: newY});
}
}
});
}