Added Gamestart Functionality

This commit is contained in:
2025-04-04 09:03:27 +02:00
parent cb62a4f82c
commit f1da693d34
3 changed files with 28 additions and 9 deletions

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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) => {
@@ -13,6 +13,13 @@ class ServerConnectionManager {
});
this.socket.on("gameEnd", (msg) => { this.gameEnd(msg) });
this.socket.on("startGame", () => { this.startGame() });
this.basicSetup();
}
startGame(){
this.body.innerHTML = "<h1>Spielfeld</h1>";
}
gameEnd(msg){