|
@@ -80,71 +80,6 @@
|
|
|
|
|
|
var raycaster;
|
|
var raycaster;
|
|
|
|
|
|
- var blocker = document.getElementById( 'blocker' );
|
|
|
|
- var instructions = document.getElementById( 'instructions' );
|
|
|
|
-
|
|
|
|
- // http://www.html5rocks.com/en/tutorials/pointerlock/intro/
|
|
|
|
-
|
|
|
|
- var havePointerLock = 'pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document;
|
|
|
|
-
|
|
|
|
- if ( havePointerLock ) {
|
|
|
|
-
|
|
|
|
- var element = document.body;
|
|
|
|
-
|
|
|
|
- var pointerlockchange = function ( event ) {
|
|
|
|
-
|
|
|
|
- if ( document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element ) {
|
|
|
|
-
|
|
|
|
- controlsEnabled = true;
|
|
|
|
- controls.enabled = true;
|
|
|
|
-
|
|
|
|
- blocker.style.display = 'none';
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- controls.enabled = false;
|
|
|
|
-
|
|
|
|
- blocker.style.display = 'block';
|
|
|
|
-
|
|
|
|
- instructions.style.display = '';
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- var pointerlockerror = function ( event ) {
|
|
|
|
-
|
|
|
|
- instructions.style.display = '';
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- // Hook pointer lock state change events
|
|
|
|
- document.addEventListener( 'pointerlockchange', pointerlockchange, false );
|
|
|
|
- document.addEventListener( 'mozpointerlockchange', pointerlockchange, false );
|
|
|
|
- document.addEventListener( 'webkitpointerlockchange', pointerlockchange, false );
|
|
|
|
-
|
|
|
|
- document.addEventListener( 'pointerlockerror', pointerlockerror, false );
|
|
|
|
- document.addEventListener( 'mozpointerlockerror', pointerlockerror, false );
|
|
|
|
- document.addEventListener( 'webkitpointerlockerror', pointerlockerror, false );
|
|
|
|
-
|
|
|
|
- instructions.addEventListener( 'click', function ( event ) {
|
|
|
|
-
|
|
|
|
- instructions.style.display = 'none';
|
|
|
|
-
|
|
|
|
- // Ask the browser to lock the pointer
|
|
|
|
- element.requestPointerLock = element.requestPointerLock || element.mozRequestPointerLock || element.webkitRequestPointerLock;
|
|
|
|
- element.requestPointerLock();
|
|
|
|
-
|
|
|
|
- }, false );
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- instructions.innerHTML = 'Your browser doesn\'t seem to support Pointer Lock API';
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var controlsEnabled = false;
|
|
|
|
-
|
|
|
|
var moveForward = false;
|
|
var moveForward = false;
|
|
var moveBackward = false;
|
|
var moveBackward = false;
|
|
var moveLeft = false;
|
|
var moveLeft = false;
|
|
@@ -173,6 +108,30 @@
|
|
scene.add( light );
|
|
scene.add( light );
|
|
|
|
|
|
controls = new THREE.PointerLockControls( camera );
|
|
controls = new THREE.PointerLockControls( camera );
|
|
|
|
+
|
|
|
|
+ var blocker = document.getElementById( 'blocker' );
|
|
|
|
+ var instructions = document.getElementById( 'instructions' );
|
|
|
|
+
|
|
|
|
+ instructions.addEventListener( 'click', function ( event ) {
|
|
|
|
+
|
|
|
|
+ controls.lock();
|
|
|
|
+
|
|
|
|
+ }, false );
|
|
|
|
+
|
|
|
|
+ controls.addEventListener( 'lock', function() {
|
|
|
|
+
|
|
|
|
+ instructions.style.display = 'none';
|
|
|
|
+ blocker.style.display = 'none';
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
|
|
+ controls.addEventListener( 'unlock', function() {
|
|
|
|
+
|
|
|
|
+ blocker.style.display = 'block';
|
|
|
|
+ instructions.style.display = '';
|
|
|
|
+
|
|
|
|
+ } );
|
|
|
|
+
|
|
scene.add( controls.getObject() );
|
|
scene.add( controls.getObject() );
|
|
|
|
|
|
var onKeyDown = function ( event ) {
|
|
var onKeyDown = function ( event ) {
|
|
@@ -338,7 +297,7 @@
|
|
|
|
|
|
requestAnimationFrame( animate );
|
|
requestAnimationFrame( animate );
|
|
|
|
|
|
- if ( controlsEnabled === true ) {
|
|
|
|
|
|
+ if ( controls.enabled === true ) {
|
|
|
|
|
|
raycaster.ray.origin.copy( controls.getObject().position );
|
|
raycaster.ray.origin.copy( controls.getObject().position );
|
|
raycaster.ray.origin.y -= 10;
|
|
raycaster.ray.origin.y -= 10;
|