From ac7964d079d807a36a0e1b9923e075fc858d7dad Mon Sep 17 00:00:00 2001 From: -=yb4f310 Date: Wed, 15 Nov 2017 13:10:43 +0100 Subject: [PATCH] Initial Commit: CC - Mouse Move - Moorcow (iv4irhd4cz.js) --- iv4irhd4cz.js | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 iv4irhd4cz.js diff --git a/iv4irhd4cz.js b/iv4irhd4cz.js new file mode 100644 index 0000000..d305468 --- /dev/null +++ b/iv4irhd4cz.js @@ -0,0 +1,73 @@ +if (!this.entityLoaded) { + return; +} + +if (!this.initialized) { + this.mouse = this.entityLoaded.mouse; + this.raycaster = this.entityLoaded.raycaster; + this.camera = this.entityLoaded.camera; + this.cursor = this.entityLoaded.cursor; + this.thrower = this.entityLoaded.thrower; + this.throwerParticleEngine = this.entityLoaded.throwerParticleEngine; + this.initialized = true; +} + +this.mouse.x = (event.offsetX / event.target.width ) * 2 - 1; +this.mouse.y = -(event.offsetY / event.target.height) * 2 + 1; + +this.camera.lookAt.x = this.mouse.x * 20; +this.camera.lookAt.y = this.mouse.y * 20; +this.camera.lookAt.z = Math.cos(this.mouse.x) + Math.sin(this.mouse.y); +this.camera.updateInstance(); + +this.raycaster.setFromCamera( + this.mouse, + this.camera +); + +var distance = - this.camera.position.z / this.raycaster.direction.z; +var cursorPosition = this.camera.position.clone().add( + this.raycaster.direction.clone().multiply( + distance, + true + ) +); + +this.cursor.position.x = cursorPosition.x; +this.cursor.position.y = cursorPosition.y; +this.cursor.position.z = cursorPosition.z; +this.cursor.updateInstancePosition(); + +this.cursor.instance.quaternion.copy(this.camera.instance.quaternion); + +this.thrower.lookAt(this.cursor.position); + +this.throwerParticleEngine.direction.x = this.raycaster.direction.x; +this.throwerParticleEngine.direction.y = this.raycaster.direction.y; +this.throwerParticleEngine.direction.z = this.raycaster.direction.z; +this.throwerParticleEngine.updateInstance('direction'); + +this.throwerParticleEngine.position.x = this.thrower.position.x + this.raycaster.direction.x * 6; +this.throwerParticleEngine.position.y = this.thrower.position.y + this.raycaster.direction.y * 6 + 0.3; +this.throwerParticleEngine.position.z = this.thrower.position.z + this.raycaster.direction.z * 6; +this.throwerParticleEngine.updateInstance('position'); + +/* +this.scene.meshes.map( + function(mesh) { + if (mesh.instance.material instanceof Array) { + mesh.instance.material.map( + function(material) { + material.color.setHex(0xffffff); + } + ); + } else { + mesh.instance.material.color.setHex(0xffffff); + } + } +); +*/ + + + +//@ sourceURL=mouseMove.js \ No newline at end of file