r3-custom-code/fsilsam72g.js

115 lines
2.9 KiB
JavaScript

if (!this.entityLoaded) {
return;
}
var camera = R3.EntityManager.Instance.findComponentById('knwkksjc7n');
camera.lookAt.x = (-1 * (window.innerWidth / 2 - data.event.x)) * 0.025;//(window.clientWidth/ 2) + data.event.x;
camera.lookAt.y = (((window.innerHeight / 2 - data.event.y)) * 0.05);
camera.updateInstance();
var cursorCamera = R3.EntityManager.Instance.findComponentById('b78qx660fo');
var mousePosition = new THREE.Vector3(
(-1 * (window.innerWidth / 2 - data.event.x)) ,
(window.innerHeight / 2 - data.event.y) * 1.66667,
0
);
mousePosition.unproject(cursorCamera.instance);
var cursor = R3.EntityManager.Instance.findComponentById('oxpg88pgzv');
cursor.position.x = mousePosition.x;
cursor.position.y = mousePosition.y;
//cursor.position.x = (-1 * (window.innerWidth / 2 - data.event.x)) * 0.025;
//cursor.position.y = (((window.innerHeight / 2 - data.event.y)) * 0.05);
cursor.updateInstance();
var thrower = R3.EntityManager.Instance.findComponentById('01viz3rw6l');
thrower.instance.lookAt(
new THREE.Vector3(
cursor.position.x,
cursor.position.y,
cursor.position.z
)
);
//thrower.rotation.x = 0.5 + cursor.position.y * 0.12;
//thrower.rotation.y = Math.PI + (cursor.position.x * -0.1);
//thrower.updateInstance();
/**
* First we find our crosshair
*/
//var crosshair = R3.EntityManager.Instance.findComponentById('oxpg88pgzv');
var sphere = R3.EntityManager.Instance.findComponentById('dpol2u3xbm');
/**
* Target, is the x / y postion of the crosshair on the z=0 plane in the crosshair scene
*/
var target = new THREE.Vector3(
(-1 * (window.innerWidth / 2 - data.event.x)) ,
(window.innerHeight / 2 - data.event.y) ,
0
);
sphere.instance.position.copy(target);//instance.applyMatrix4( mInverse );
sphere.position.x = sphere.instance.position.x;
sphere.position.y = sphere.instance.position.y;
sphere.position.z = sphere.instance.position.z;
/**
* Now we get the position of the crosshair, in our world scene space
*/
target.unproject(camera.instance);
/**
* We want to shoot in the other direction
*/
target.normalize();
target.z *= -1;
//target.sub(thrower.position.instance).normalize();
var raycaster = new THREE.Raycaster();
raycaster.ray = new THREE.Ray(
cursor.position.instance,
target.instance
);
var intersects = raycaster.intersectObjects(
R3.EntityManager.Instance.queryComponents(R3.D3.Mesh).map(
function(mesh){
//mesh.instance.visible = true;
mesh.instance.material.color.setHex(0xffffff);
return mesh.instance;
}
)
);
if (intersects.length > 0) {
console.log('intersected');
intersects.map(
function(intersect){
intersect.object.material.color.setHex(0xff0000);
}
)
}
/**
* But we also, want the direction from the thrower to the crosshair
*/
//
/**
* We need the x/y/z position of an imaginary object, at target position, in the game scene
*/
//var mInverse = new THREE.Matrix4().getInverse( crosshair.instance.matrixWorld );
//@ sourceURL=mouseMove.js