Explorar o código

Switched to FlyControls in LOD example.

Mr.doob %!s(int64=12) %!d(string=hai) anos
pai
achega
857b2e6134
Modificáronse 1 ficheiros con 8 adicións e 20 borrados
  1. 8 20
      examples/webgl_lod.html

+ 8 - 20
examples/webgl_lod.html

@@ -38,6 +38,8 @@
 
 		<script src="../build/three.min.js"></script>
 
+		<script src="js/controls/FlyControls.js"></script>
+
 		<script src="js/Detector.js"></script>
 		<script src="js/libs/stats.min.js"></script>
 
@@ -51,12 +53,7 @@
 
 			var geometry, objects;
 
-			var mouseX = 0, mouseY = 0;
-
-			var windowHalfX = window.innerWidth / 2;
-			var windowHalfY = window.innerHeight / 2;
-
-			document.addEventListener( 'mousemove', onDocumentMouseMove, false );
+			var controls, clock = new THREE.Clock();
 
 			init();
 			animate();
@@ -69,6 +66,10 @@
 				camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 15000 );
 				camera.position.z = 1000;
 
+				controls = new THREE.FlyControls( camera );
+				controls.movementSpeed = 1000;
+				controls.rollSpeed = Math.PI / 10;
+
 				scene = new THREE.Scene();
 				scene.fog = new THREE.Fog( 0x000000, 1, 15000 );
 
@@ -134,9 +135,6 @@
 
 			function onWindowResize() {
 
-				windowHalfX = window.innerWidth / 2;
-				windowHalfY = window.innerHeight / 2;
-
 				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
 
@@ -144,13 +142,6 @@
 
 			}
 
-			function onDocumentMouseMove(event) {
-
-				mouseX = ( event.clientX - windowHalfX ) * 10;
-				mouseY = ( event.clientY - windowHalfY ) * 10;
-
-			}
-
 			function animate() {
 
 				requestAnimationFrame( animate );
@@ -160,10 +151,7 @@
 
 			function render() {
 
-				camera.position.x += ( mouseX - camera.position.x ) * .005;
-				camera.position.y += ( - mouseY - camera.position.y ) * .01;
-
-				camera.lookAt( scene.position );
+				controls.update( clock.getDelta() );
 
 				scene.updateMatrixWorld();
 				scene.traverse( function ( object ) {