@@ -15,12 +15,17 @@ var initial_y = player.position.y;
15
15
var initial_z = player . position . z ;
16
16
scene . add ( player ) ;
17
17
18
- // obstacle
19
- var geometry = new THREE . BoxGeometry ( 0.2 , 1 , 0.2 ) ;
20
- var material = new THREE . MeshBasicMaterial ( { color : 0xff0000 } ) ;
21
- var obstacle = new THREE . Mesh ( geometry , material ) ;
22
- obstacle . position . x += 1 ;
23
- scene . add ( obstacle ) ;
18
+ // obstacles
19
+ var obstacles = [ ] ;
20
+
21
+ for ( var i = 0 ; i < 5 ; i ++ ) {
22
+ var geometry = new THREE . BoxGeometry ( 0.2 , 1 , 0.2 ) ;
23
+ var material = new THREE . MeshBasicMaterial ( { color : 0xff0000 } ) ;
24
+ var obstacle = new THREE . Mesh ( geometry , material ) ;
25
+ obstacle . position . x = 1 + i ;
26
+ obstacles . push ( obstacle ) ;
27
+ scene . add ( obstacle ) ;
28
+ }
24
29
25
30
camera . position . z = 5 ;
26
31
@@ -32,10 +37,12 @@ var acceleration_step = 0.0025;
32
37
var animate = function ( ) {
33
38
requestAnimationFrame ( animate ) ;
34
39
35
- obstacle . position . x -= 0.01 ;
40
+ for ( var i = 0 ; i < obstacles . length ; i ++ ) {
41
+ obstacles [ i ] . position . x -= 0.01 ;
36
42
37
- if ( obstacle . position . x < ( initial_x - 1 ) ) {
38
- obstacle . position . x = 1 ;
43
+ if ( obstacles [ i ] . position . x < ( initial_x - 1 ) ) {
44
+ obstacles [ i ] . position . x = obstacles . length ;
45
+ }
39
46
}
40
47
41
48
if ( keyboard . pressed ( "space" ) ) {
@@ -69,7 +76,7 @@ var animate = function () {
69
76
var originPoint = player . position . clone ( ) ;
70
77
71
78
var ray = new THREE . Raycaster ( originPoint , directionVector . clone ( ) . normalize ( ) ) ;
72
- var collisionResults = ray . intersectObjects ( [ obstacle ] ) ;
79
+ var collisionResults = ray . intersectObjects ( obstacles ) ;
73
80
74
81
if ( collisionResults . length > 0 && collisionResults [ 0 ] . distance < directionVector . length ( ) ) {
75
82
throw Error ( 'game over!' ) ;
0 commit comments