From 7e245011ef557723e1ad86eb5ea698133c4d5e91 Mon Sep 17 00:00:00 2001 From: adrien Date: Thu, 13 Jul 2023 23:21:47 +0200 Subject: [PATCH] vortex --- jsm/TetraGUI.js | 31 +++++++++++++-------------- jsm/Vortex.js | 56 +++++++++++++++++++++++-------------------------- 2 files changed, 40 insertions(+), 47 deletions(-) diff --git a/jsm/TetraGUI.js b/jsm/TetraGUI.js index d4a0bc1..47475c2 100644 --- a/jsm/TetraGUI.js +++ b/jsm/TetraGUI.js @@ -33,30 +33,27 @@ class TetraGUI extends GUI { let darkTexture, colorfullTexture switch (background) { case "Plasma": - darkTexture = new THREE.TextureLoader(loadingManager).load("./images/plasma.jpg", texture => { - texture.wrapS = THREE.RepeatWrapping - texture.wrapT = THREE.MirroredRepeatWrapping - texture.repeat.set(1, 1) - }) - colorfullTexture = new THREE.TextureLoader(loadingManager).load("./images/plasma2.jpg", texture => { + darkTexture = new THREE.TextureLoader(loadingManager).load("./images/plasma2.jpg", texture => { texture.wrapS = THREE.RepeatWrapping texture.wrapT = THREE.MirroredRepeatWrapping texture.repeat.set(2, 1) }) + colorfullTexture = new THREE.TextureLoader(loadingManager).load("./images/plasma.jpg", texture => { + texture.wrapS = THREE.RepeatWrapping + texture.wrapT = THREE.MirroredRepeatWrapping + texture.repeat.set(1, 1) + }) loadingManager.onLoad = function() { scene.vortex.darkCylinder.material.map = darkTexture - scene.vortex.darkCylinder.material.opacity = 0.1 + scene.vortex.darkCylinder.material.opacity = 0.75 scene.vortex.colorFullCylinder.material.map = colorfullTexture - scene.vortex.colorFullCylinder.material.opacity = 0.6 + scene.vortex.colorFullCylinder.material.opacity = 0.075 scene.vortex.globalRotation = 0.028 - scene.vortex.darkTextureRotation = 0.006 - scene.vortex.darkMoveForward = 0.007 + scene.vortex.darkTextureRotation = 0.005 + scene.vortex.darkMoveForward = 0.012 scene.vortex.colorFullTextureRotation = 0.006 - scene.vortex.colorFullMoveForward = 0.02 - - scene.ambientLight.intensity = 0.1 - scene.directionalLight.intensity = 15 + scene.vortex.colorFullMoveForward = 0.016 } break case "Espace": @@ -113,9 +110,9 @@ class TetraGUI extends GUI { this.settings.volume = this.settings.addFolder("Volume").open() this.settings.volume.add(settings,"musicVolume").name("Musique").min(0).max(100).step(1).onChange(volume => { - if (volume) { - scene.music.setVolume(volume/100) - if (game.playing) scene.music.play() + scene.music.setVolume(volume/100) + if (game.playing) { + if (volume) scene.music.play() } else { scene.music.pause() } diff --git a/jsm/Vortex.js b/jsm/Vortex.js index 6d31003..53eae05 100644 --- a/jsm/Vortex.js +++ b/jsm/Vortex.js @@ -1,42 +1,25 @@ import * as THREE from 'three' -class Vortex extends THREE.Group { +export class Vortex extends THREE.Group { constructor(loadingManager) { super() - const commonCylinderGeometry = new THREE.CylinderGeometry(35, 35, 500, 12, 1, true) - - this.globalRotation = 0.028 this.darkTextureRotation = 0.006 - this.darkMoveForward = 0.007 + this.darkMoveForward = 0.012 this.colorFullTextureRotation = 0.006 - this.colorFullMoveForward = 0.02 + this.colorFullMoveForward = 0.016 + + const commonCylinderGeometry = new THREE.CylinderGeometry(35, 35, 500, 12, 1, true) this.background = "Plasma" this.darkCylinder = new THREE.Mesh( commonCylinderGeometry, new THREE.MeshLambertMaterial({ - side: THREE.BackSide, - map: new THREE.TextureLoader(loadingManager).load("./images/plasma.jpg", (texture) => { - texture.wrapS = THREE.RepeatWrapping - texture.wrapT = THREE.MirroredRepeatWrapping - texture.repeat.set(1, 1) - }), - blending: THREE.AdditiveBlending, - opacity: 0.1 - }) - ) - this.darkCylinder.position.set(5, 10, -10) - this.add(this.darkCylinder) - - this.colorFullCylinder = new THREE.Mesh( - commonCylinderGeometry, - new THREE.MeshBasicMaterial({ side: THREE.BackSide, map: new THREE.TextureLoader(loadingManager).load("./images/plasma2.jpg", (texture) => { texture.wrapS = THREE.RepeatWrapping @@ -44,23 +27,36 @@ class Vortex extends THREE.Group { texture.repeat.set(2, 1) }), blending: THREE.AdditiveBlending, - opacity: 0.6 + opacity: 0.75 + }) + ) + this.add(this.darkCylinder) + + this.colorFullCylinder = new THREE.Mesh( + commonCylinderGeometry, + new THREE.MeshBasicMaterial({ + side: THREE.BackSide, + map: new THREE.TextureLoader(loadingManager).load("./images/plasma.jpg", (texture) => { + texture.wrapS = THREE.RepeatWrapping + texture.wrapT = THREE.MirroredRepeatWrapping + texture.repeat.set(1, 1) + }), + blending: THREE.AdditiveBlending, + opacity: 0.075 }) ) - this.colorFullCylinder.position.set(5, 10, -10) this.add(this.colorFullCylinder) + + this.position.set(5, 10, -10) } update(delta) { - this.darkCylinder.rotation.y += this.globalRotation * delta + this.rotation.y += this.globalRotation * delta + this.darkCylinder.material.map.offset.y += this.darkMoveForward * delta this.darkCylinder.material.map.offset.x += this.darkTextureRotation * delta - this.colorFullCylinder.rotation.y += this.globalRotation * delta this.colorFullCylinder.material.map.offset.y += this.colorFullMoveForward * delta this.colorFullCylinder.material.map.offset.x += this.colorFullTextureRotation * delta } -} - - -export { Vortex } \ No newline at end of file +} \ No newline at end of file