37 lines
903 B
JavaScript
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});
|
|
}
|
|
}
|
|
});
|
|
}
|