62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
|
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.throwerLight = this.entityLoaded.throwerLight;
|
||
|
|
||
|
this.initialized = true;
|
||
|
}
|
||
|
|
||
|
this.mouse.x = (data.event.offsetX / data.event.target.width ) * 2 - 1;
|
||
|
this.mouse.y = -(data.event.offsetY / data.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 = 0;
|
||
|
this.camera.updateInstance('lookAt');
|
||
|
|
||
|
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 * 10;
|
||
|
this.throwerParticleEngine.position.y = this.thrower.position.y + this.raycaster.direction.y * 10 + 0.3;
|
||
|
this.throwerParticleEngine.position.z = this.thrower.position.z + this.raycaster.direction.z * 10;
|
||
|
this.throwerParticleEngine.updateInstance('position');
|
||
|
|
||
|
this.throwerLight.position.x = this.thrower.position.x + this.raycaster.direction.x * 10;
|
||
|
this.throwerLight.position.y = this.thrower.position.y + this.raycaster.direction.y * 10;
|
||
|
this.throwerLight.position.z = this.thrower.position.z + this.raycaster.direction.z * 10;
|
||
|
this.throwerLight.updateInstance('position');
|
||
|
|
||
|
//@ sourceURL=mouseMove.js
|