From 2067dc57f34dd424e4d17bfd92900d8c79283ee7 Mon Sep 17 00:00:00 2001 From: Mathis Decoster <mathis.decoster.etu@univ-lille.fr> Date: Thu, 28 Mar 2024 18:03:37 +0100 Subject: [PATCH] affichage dynamique --- client/src/avatar.js | 4 ++++ client/src/main.js | 24 +++++++++++++++++------- client/src/{choixBonus.js => utils.js} | 1 + server/index.js | 8 +++----- 4 files changed, 25 insertions(+), 12 deletions(-) rename client/src/{choixBonus.js => utils.js} (69%) diff --git a/client/src/avatar.js b/client/src/avatar.js index bfb2d49..3ed74c8 100644 --- a/client/src/avatar.js +++ b/client/src/avatar.js @@ -38,6 +38,10 @@ export class Avatar extends Entite { this.score -= nb; } + getScore() { + return this.score; + } + tirer() { let projectile = new Projectile(this.x, this.y); this.projectiles.push(projectile); diff --git a/client/src/main.js b/client/src/main.js index 46c4e3e..21b464c 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -5,7 +5,7 @@ import timer from '../../server/timer.js'; import setHtml from './setHtml.js'; import draw from './draw.js'; import { Coordinate } from './Coordinate.js'; -import { bonusImages } from './choixBonus.js'; +import { bonusImages, colors } from './utils.js'; import Bonus from '../../server/bonus.js'; const socket = io(); @@ -116,16 +116,24 @@ let newEnemis = []; let newBonus = []; function render() { - console.log(sec); context.clearRect(0, 0, canvas.width, canvas.height); context.drawImage(background, 0, 0, canvas.width, canvas.height); - context.font = '40pt New Super Mario Font U'; + let vies = 0; + for (let i = 1; i < avatars.length; i++) { + if (avatars[i] != undefined) { + context.fillStyle = colors[i - 1]; + const x = 10 + i * 60; + context.fillText(avatars[i].score, x, 50); + vies += avatars[i].vies; + } + } + context.fillStyle = 'blue'; - context.fillText(avatar.getScore(), 10, 50); + context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50); - for (let i = 0; i < avatar.getVies(); i++) { + for (let i = 0; i < vies; i++) { context.drawImage(imageCoeur, canvas.width - (3 - i) * 50, 0, 50, 50); } @@ -151,7 +159,6 @@ function render() { newBonus = data; }); newBonus.forEach(bonus => { - console.log(bonus); let img = new Image(); img.src = bonusImages[bonus.choix]; img.width = 75; @@ -174,11 +181,15 @@ socket.on('avatarsData', avatarData => { avatars[data.id].x = data.x; avatars[data.id].y = data.y; avatars[data.id].projectiles = data.projectiles; + avatars[data.id].vies = data.vies; + avatars[data.id].score = data.score; } else { avatars[data.id] = { x: data.x, y: data.y, projectiles: data.projectiles, + vies: data.vies, + score: data.score, }; } }); @@ -212,4 +223,3 @@ document.addEventListener('keyup', event => { event.preventDefault(); }); -console.log(canvas.width); diff --git a/client/src/choixBonus.js b/client/src/utils.js similarity index 69% rename from client/src/choixBonus.js rename to client/src/utils.js index 78c4529..9927cec 100644 --- a/client/src/choixBonus.js +++ b/client/src/utils.js @@ -1,3 +1,4 @@ export const bonusNoms = ['vie', 'invincibilite']; export const bonusImages = ['/images/vie.webp', '/images/vie.png']; export const bonusTaille = [1, 5]; +export const colors = ['#be0027', '#371777', '#2c9f45', '#cf8d2e']; diff --git a/server/index.js b/server/index.js index 23577dd..b075ad7 100644 --- a/server/index.js +++ b/server/index.js @@ -7,11 +7,7 @@ import enemi from './enemis.js'; import { Coordinate } from '../client/src/Coordinate.js'; import timer from './timer.js'; import Bonus from './bonus.js'; -import { - bonusImages, - bonusNoms, - bonusTaille, -} from '../client/src/choixBonus.js'; +import { bonusImages, bonusNoms, bonusTaille } from '../client/src/utils.js'; const app = express(); @@ -196,6 +192,8 @@ setInterval(() => { x: avatar.getX(), y: avatar.getY(), projectiles: avatar.projectiles, + vies: avatar.getVies(), + score: avatar.getScore(), }); bonusArray.forEach(bonus => { if (bonus.hitbox.colision(avatar.hitbox)) { -- GitLab