diff --git a/client/src/main.js b/client/src/main.js index 2b03de1ae469a55ff3c83e85aafaaec7e74ef6a2..a5ae85a175e56b5a21c876cbebf0758f23373087 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -10,15 +10,19 @@ const Main = (playerName, playerCharacter) => { canvas.height = document.documentElement.clientHeight; ctx.width = 6000; ctx.height = 3340; - const xStart = canvas.width / 2; - const xEnd = ctx.width - canvas.width / 2; - const yStart = canvas.height / 2; - const yEnd = ctx.height - canvas.height / 2; + let xStart = canvas.width / 2; + let xEnd = ctx.width - canvas.width / 2; + let yStart = canvas.height / 2; + let yEnd = ctx.height - canvas.height / 2; window.addEventListener("resize", (e) => { e.preventDefault(); canvas.width = document.documentElement.clientWidth; canvas.height = document.documentElement.clientHeight; + xStart = canvas.width / 2; + xEnd = ctx.width - canvas.width / 2; + yStart = canvas.height / 2; + yEnd = ctx.height - canvas.height / 2; }); const backgroundImage = new Image(); @@ -109,7 +113,6 @@ const Main = (playerName, playerCharacter) => { ); socket.emit("newUser", player); - let allUsers = []; socket.on("allUsers", (data) => { allUsers = data.users; @@ -119,6 +122,15 @@ const Main = (playerName, playerCharacter) => { } }); + socket.on("isDead", (data) => { + if (data.winner.id == player.id) { + player.radius += data.loser.radius; + } + if (data.loser.id == player.id) { + //Interface YOU ARE DEAD + } + }); + socket.on("newSushi", (data) => { sushis.splice(data.drop, 1); sushis.push( diff --git a/server/index.js b/server/index.js index 1ef01f5c73b2780e6abd9a096bd627599d39c198..8b2ae8a21f4d7a779ff2eb54372cb32651ab9478 100644 --- a/server/index.js +++ b/server/index.js @@ -48,7 +48,9 @@ function move(player, ctx, mouseX, mouseY, canvasWidth, canvasHeight) { } function killPlayer(MyPlayer) { - users.forEach((player, idx) => { + let deadPlayer; + for (let i = 0; i < users.length; i++) { + const player = users[i]; const dx = player.x - MyPlayer.x; const dy = player.y - MyPlayer.y; const distance = Math.sqrt(dx * dx + dy * dy); @@ -57,10 +59,12 @@ function killPlayer(MyPlayer) { distance < MyPlayer.radius && player.id != MyPlayer.id ) { - users.splice(idx, 1); - player.radius += users[idx].radius; + deadPlayer = player; + users.splice(i, 1); + break; } - }); + } + return deadPlayer; } const io = new IOServer(httpServer); @@ -73,7 +77,7 @@ io.on("connection", (socket) => { socket.emit("allUsers", { users: users }); }); - socket.on("userMoveTo", (data) => { + socket.on("userMoveTo", async (data) => { let player = data.player; moveTo( player, @@ -90,14 +94,20 @@ io.on("connection", (socket) => { data.canvasWidth, data.canvasHeight ); + let deadPlayer = killPlayer(player); for (let i = 0; i < users.length; i++) { if (player.id === users[i].id) { users[i] = player; } } - killPlayer(data.player); users.sort((a, b) => a.radius - b.radius); - socket.emit("allUsers", { users: users, player: player }); + socket.emit("allUsers", { + users: users, + player: player, + }); + if (deadPlayer) { + io.emit("isDead", { loser: deadPlayer, winner: player }); + } }); socket.on("updateSushi", (data) => {