From d3f7386e9f35672750841e97c9ec688754e4edfc Mon Sep 17 00:00:00 2001 From: -=yb4f310 Date: Mon, 13 Nov 2017 09:43:43 +0100 Subject: [PATCH] Initial Commit: CC - Mouse Move - Moorcow (8a0m30eevi.js) --- 8a0m30eevi.js | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 8a0m30eevi.js diff --git a/8a0m30eevi.js b/8a0m30eevi.js new file mode 100644 index 0000000..c8199a2 --- /dev/null +++ b/8a0m30eevi.js @@ -0,0 +1,84 @@ +if (!this.entityLoaded) { + return; +} + +if (!this.initialized) { + 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 * 7; +this.throwerParticleEngine.position.y = this.thrower.position.y + this.raycaster.direction.y * 7 + 1; +this.throwerParticleEngine.position.z = this.thrower.position.z + this.raycaster.direction.z * 7; +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); + } + } +); + +var intersects = this.raycaster.getIntersectedObjects(this.scene.meshes); +intersects.map( + function(intersect) { + + var mesh = intersect.mesh; + + if (mesh.instance.material instanceof Array) { + mesh.instance.material.map( + function(material) { + material.color.setHex(0xff0000); + } + ); + } else { + mesh.instance.material.color.setHex(0xff0000); + } + } +); + +//@ sourceURL=mouseMove.js \ No newline at end of file