diff --git a/client/src/avatar.js b/client/src/avatar.js index bcaa9e7ad71eea9178df5366a651156caee41442..424f844aeb2344bf60cb1b758956356a35ccaec7 100644 --- a/client/src/avatar.js +++ b/client/src/avatar.js @@ -14,6 +14,7 @@ export class Avatar extends Entite { momentumY; statut; statutTime; + spectateur; constructor(nom, id, canvasSize) { super(0, 0, new Hitbox(68, 145, 0, 0), null); @@ -28,6 +29,11 @@ export class Avatar extends Entite { this.momentumY = 0; this.canvasSize = canvasSize; this.id = id; + this.spectateur = false; + } + + setSpectateur() { + this.spectateur = true; } incrementScore(nb) { diff --git a/client/src/main.js b/client/src/main.js index 5e0e1ed7695abcde8292e41d42ef87523b8ca132..9e6fe2a16226b9b93f3139bd17d608dc3ac69abe 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -133,6 +133,12 @@ function render() { let avatars = []; +socket.on('dead', avatarId => { + //affichage.afficherFinDePartie(); + console.log(avatarId); + avatars[avatarId] = {}; +}); + socket.on('disconnectEvent', id => { if (avatar.getNom() == id) { affichage.afficherFinDePartie(); diff --git a/server/index.js b/server/index.js index e8409ad7a673879ce74dc6c94786177d3c4b2b07..728bf7a43a6b1a65c1bb03bb6b79ad764806ec0e 100644 --- a/server/index.js +++ b/server/index.js @@ -60,10 +60,8 @@ io.on('connection', socket => { socket.on('disconnect', () => { avatars.forEach(avatar => { if (avatar.nom == socket.id) { - console.log('taille du tableau : ' + avatars.length); io.emit('disconnectEvent', avatar.id); avatars.splice(avatars.indexOf(avatar), 1); - console.log('taille du tableau : ' + avatars.length); } }); console.log(`Déconnexion du client ${socket.id}`); @@ -183,7 +181,9 @@ setInterval(() => { }, 100); } if (avatar.getVies() == 0) { - avatar.initAvatar(); + //avatar.initAvatar(); + avatar.setSpectateur(); + io.emit('dead', avatar.id); //TODO : afficher écran fin de partie de l'avatar concerné } } @@ -208,14 +208,16 @@ setInterval(() => { }); avatar.deplacer(); avatar.projectiles.forEach(projectile => projectile.deplacer()); - avatarData.push({ - id: avatar.id, - x: avatar.getX(), - y: avatar.getY(), - projectiles: avatar.projectiles, - vies: avatar.getVies(), - score: avatar.getScore(), - }); + if (!avatar.spectateur) { + avatarData.push({ + id: avatar.id, + x: avatar.getX(), + y: avatar.getY(), + projectiles: avatar.projectiles, + vies: avatar.getVies(), + score: avatar.getScore(), + }); + } bonusArray.forEach(bonus => { if (bonus.hitbox.colision(avatar.hitbox)) { if (bonusNoms[bonus.getChoix()] == 'vie') {