diff --git a/backend/src/SocketIO/GameManager/Game/Game.js b/backend/src/SocketIO/GameManager/Game/Game.js index eee5bc4..0f142ec 100644 --- a/backend/src/SocketIO/GameManager/Game/Game.js +++ b/backend/src/SocketIO/GameManager/Game/Game.js @@ -22,12 +22,13 @@ class Game{ } startGame(){ - + this.io.to(`game-${this.code}`).emit("startGame"); this.gameStarted = true; + this.gameLoop.loop(); } waitingForPlayers(changeTime = false){ - if(this.waitingSeconds === 0){ + if(this.waitingSeconds <= 0){ if(this.players.length < 2) { this.io.to(`game-${this.code}`).emit( "gameEnd", @@ -55,8 +56,10 @@ class Game{ waitingSeconds: this.waitingSeconds }); - if (changeTime) this.waitingSeconds--; - setTimeout(() => { this.waitingForPlayers(true) }, 1000) + if (changeTime){ + this.waitingSeconds--; + setTimeout(() => { this.waitingForPlayers(true) }, 1000); + } } diff --git a/backend/src/SocketIO/GameManager/Game/GameLoop.js b/backend/src/SocketIO/GameManager/Game/GameLoop.js index 6c67935..559d2f7 100644 --- a/backend/src/SocketIO/GameManager/Game/GameLoop.js +++ b/backend/src/SocketIO/GameManager/Game/GameLoop.js @@ -1,9 +1,9 @@ const socketIO = require("socket.io"); -const GameManager = require("../GameManager"); const Playground = require("./Classes/Playground/Playground"); +const Game = require("./Game"); class GameLoop{ - /** @param {socketIO.Server} io @param {GameManager} game */ + /** @param {socketIO.Server} io @param {Game} game */ constructor(io, game) { this.io = io; this.game = game; @@ -11,7 +11,16 @@ class GameLoop{ this.playground = new Playground(); } - + loop(){ + this.io.to(`game-${this.game.code}`).emit("loop", { + code: this.game.code, + playground: this.playground + }); + + setTimeout(() => { + this.loop(); + }, 250); + } } module.exports = GameLoop; \ No newline at end of file diff --git a/frontend/game/scripts/index.js b/frontend/game/scripts/index.js index 5323710..1ba6dfb 100644 --- a/frontend/game/scripts/index.js +++ b/frontend/game/scripts/index.js @@ -3,7 +3,7 @@ class ServerConnectionManager { /**@type {import("../../../backend/node_modules/socket.io-client".Socket} für Autocompletions VSC*/ this.socket = io(`${window.location.protocol}//${window.location.hostname}:${window.location.port}`); - this.basicSetup(); + this.body = document.getElementsByTagName("body")[0]; // Socket.on Handler und Routen this.socket.on("waitingForPlayers", (msg) => { @@ -11,8 +11,15 @@ class ServerConnectionManager { document.getElementById("wM").innerText = message; document.getElementById("wS").innerText = waitingSeconds; }); - + this.socket.on("gameEnd", (msg) => { this.gameEnd(msg) }); + this.socket.on("startGame", () => { this.startGame() }); + + this.basicSetup(); + } + + startGame(){ + this.body.innerHTML = "