From 853f314992b970e960aeba6e8204d1621f140568 Mon Sep 17 00:00:00 2001 From: hubourge Date: Tue, 10 Sep 2024 18:34:02 +0200 Subject: [PATCH] Game - Add changeBarColor - Add changePlane (all in multi) --- site/real_game/class/MultiGame.js | 7 ++++- site/real_game/class/multiClass/Map.js | 36 ++++++++++++++++++++------ site/real_game/class/soloClass/Map.js | 4 +-- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/site/real_game/class/MultiGame.js b/site/real_game/class/MultiGame.js index 4ae92a2..14cf7cc 100644 --- a/site/real_game/class/MultiGame.js +++ b/site/real_game/class/MultiGame.js @@ -6,7 +6,7 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/18 00:53:53 by edbernar #+# #+# */ -/* Updated: 2024/09/10 17:16:22 by hubourge ### ########.fr */ +/* Updated: 2024/09/10 18:32:10 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ @@ -174,6 +174,11 @@ function createBarPlayer(color) return (mesh); } +function changeBarColor(bar, color) +{ + bar.material.color.set(color); +} + function loop() { stats.begin(); diff --git a/site/real_game/class/multiClass/Map.js b/site/real_game/class/multiClass/Map.js index ac0f2f8..cefc59a 100644 --- a/site/real_game/class/multiClass/Map.js +++ b/site/real_game/class/multiClass/Map.js @@ -6,7 +6,7 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/20 14:52:55 by hubourge #+# #+# */ -/* Updated: 2024/08/29 17:52:41 by hubourge ### ########.fr */ +/* Updated: 2024/09/10 18:27:01 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ @@ -64,7 +64,6 @@ class Map dispose() { - videoList.forEach(elem => { elem.video.pause(); elem.video.src = ''; @@ -161,6 +160,27 @@ class Map return (meshPlane); }; + changePlane(texture) + { + console.log(this.arrObject); + for (let i = 0; i < this.arrObject.length; i++) + { + if (this.arrObject[i].name == "planeBottom" || this.arrObject[i].name == "planeTop") + { + if (this.arrObject[i].mesh.material) + this.arrObject[i].mesh.material.dispose(); + if (typeof(texture) == 'string') + { + let textureLoader = new THREE.TextureLoader(); + texture = textureLoader.load(texture); + this.arrObject[i].mesh.material.map = texture; + } + else if (typeof(texture) == 'number') + this.arrObject[i].mesh.material.color.set(texture); + } + } + } + #createWall(x, y, z, name) { let geometryWall = null; @@ -319,17 +339,17 @@ class Map this.#clearVideoCanvas(); if (nbImage <= 0) return ; - + let startIndex = 0; let nbVideos = 1; path.sort(() => Math.random() - 0.5); - + // Create the canvas for the video videoCanvas = document.createElement('canvas'); ctx = videoCanvas.getContext('2d'); videoCanvas.width = 100 * 2.33 * 20; videoCanvas.height = 100; - + // Get the number of videos to display if (vNameNb && typeof(vNameNb) == 'number') nbVideos = vNameNb; @@ -393,14 +413,14 @@ class Map requestAnimationFrame(drawVideoOnCanvas); } } - + // Create the material and the banner videoCanvasTexture = new THREE.CanvasTexture(videoCanvas); videoCanvasTexture.wrapS = THREE.RepeatWrapping; videoCanvasTexture.wrapT = THREE.RepeatWrapping; videoCanvasTexture.repeat.set(-1, 1); materialCanvas = new THREE.MeshBasicMaterial({ map: videoCanvasTexture, side: THREE.BackSide , transparent: true}); - + // Load the banner loader.load( '../blender/exported/banner.glb', (gltf) => { this.banner = gltf.scene.children[0]; @@ -452,7 +472,7 @@ class Map } scene.remove(this.banner); } - + #animationGravityChanger(group, onTop) { let geometryGC = new THREE.TorusGeometry(1.5, 0.05, 12, 24); diff --git a/site/real_game/class/soloClass/Map.js b/site/real_game/class/soloClass/Map.js index 895b5ad..0e7c6bf 100644 --- a/site/real_game/class/soloClass/Map.js +++ b/site/real_game/class/soloClass/Map.js @@ -6,7 +6,7 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/28 12:23:48 by edbernar #+# #+# */ -/* Updated: 2024/09/10 17:16:43 by hubourge ### ########.fr */ +/* Updated: 2024/09/10 18:13:14 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,7 +45,7 @@ class Map world = new CANNON.World({ gravity: new CANNON.Vec3(0, -9.81, 0), }); - ground = createGround(scene, '/textures/pastel.jpg'); + ground = createGround(scene, 0x222222); wallBottom = createWall(false); wallTop = createWall(true); spotLight = new THREE.SpotLight({color: 0xffffff});