浏览代码

Improved webvr examples.

Mr.doob 7 年之前
父节点
当前提交
40d189e8c0
共有 2 个文件被更改,包括 18 次插入17 次删除
  1. 15 14
      examples/webvr_ballshooter.html
  2. 3 3
      examples/webvr_dragging.html

+ 15 - 14
examples/webvr_ballshooter.html

@@ -65,7 +65,7 @@
 					new THREE.BoxBufferGeometry( 6, 6, 6, 8, 8, 8 ),
 					new THREE.BoxBufferGeometry( 6, 6, 6, 8, 8, 8 ),
 					new THREE.MeshBasicMaterial( { color: 0x808080, wireframe: true } )
 					new THREE.MeshBasicMaterial( { color: 0x808080, wireframe: true } )
 				);
 				);
-				room.position.y = 3;
+				room.geometry.translate( 0, 3, 0 );
 				scene.add( room );
 				scene.add( room );
 
 
 				scene.add( new THREE.HemisphereLight( 0x606060, 0x404040 ) );
 				scene.add( new THREE.HemisphereLight( 0x606060, 0x404040 ) );
@@ -81,7 +81,7 @@
 					var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } ) );
 					var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } ) );
 
 
 					object.position.x = Math.random() * 4 - 2;
 					object.position.x = Math.random() * 4 - 2;
-					object.position.y = Math.random() * 4 - 2;
+					object.position.y = Math.random() * 4;
 					object.position.z = Math.random() * 4 - 2;
 					object.position.z = Math.random() * 4 - 2;
 
 
 					object.userData.velocity = new THREE.Vector3();
 					object.userData.velocity = new THREE.Vector3();
@@ -159,15 +159,16 @@
 
 
 				if ( controller.userData.isSelecting ) {
 				if ( controller.userData.isSelecting ) {
 
 
-					var cube = room.children[ 0 ];
-					room.remove( cube );
+					var object = room.children[ 0 ];
+					room.remove( object );
 
 
-					cube.position.copy( controller.position ).sub( room.position );
-					cube.userData.velocity.x = ( Math.random() - 0.5 ) * 0.02;
-					cube.userData.velocity.y = ( Math.random() - 0.5 ) * 0.02;
-					cube.userData.velocity.z = ( Math.random() * 0.02 - 0.1 );
-					cube.userData.velocity.applyQuaternion( controller.quaternion );
-					room.add( cube );
+					object.position.copy( controller.position );
+					object.userData.velocity.x = ( Math.random() - 0.5 ) * 0.02;
+					object.userData.velocity.y = ( Math.random() - 0.5 ) * 0.02;
+					object.userData.velocity.z = ( Math.random() * 0.02 - 0.1 );
+					object.userData.velocity.applyQuaternion( controller.quaternion );
+
+					room.add( object );
 
 
 				}
 				}
 
 
@@ -203,13 +204,13 @@
 
 
 					}
 					}
 
 
-					if ( cube.position.y < - range || cube.position.y > range ) {
+					if ( cube.position.y < radius || cube.position.y > 6 ) {
 
 
-						cube.position.y = Math.max( cube.position.y, - range );
+						cube.position.y = Math.max( cube.position.y, radius );
 
 
-						cube.userData.velocity.x *= 0.9;
+						cube.userData.velocity.x *= 0.98;
 						cube.userData.velocity.y = - cube.userData.velocity.y * 0.8;
 						cube.userData.velocity.y = - cube.userData.velocity.y * 0.8;
-						cube.userData.velocity.z *= 0.9;
+						cube.userData.velocity.z *= 0.98;
 
 
 					}
 					}
 
 

+ 3 - 3
examples/webvr_dragging.html

@@ -142,9 +142,9 @@
 				controller1.addEventListener( 'selectend', onSelectEnd );
 				controller1.addEventListener( 'selectend', onSelectEnd );
 				scene.add( controller1 );
 				scene.add( controller1 );
 
 
-				controller2 = renderer.vr.getController( 0 );
-				controller1.addEventListener( 'selectstart', onSelectStart );
-				controller1.addEventListener( 'selectend', onSelectEnd );
+				controller2 = renderer.vr.getController( 1 );
+				controller2.addEventListener( 'selectstart', onSelectStart );
+				controller2.addEventListener( 'selectend', onSelectEnd );
 				scene.add( controller2 );
 				scene.add( controller2 );
 
 
 				//
 				//