25
|
1 createPlane = function(sgroot, w, h){
|
|
2 var player = new sgroot.createSceneGraph3();
|
|
3 player.set_move_collision(no_move_idle, no_collision_idle);
|
|
4
|
|
5 var my_bullet = new sgroot.createSceneGraph3();
|
|
6 my_bullet.set_move_collision(no_move_idle, no_collision_idle);
|
|
7 my_bullet.name = 'bullet';
|
|
8 player.addChild(my_bullet)
|
|
9 sgroot.nodeLocate(sgroot, 'my_bullet', my_bullet);
|
|
10
|
|
11
|
|
12 var combat_plane = new sgroot.createSceneGraph3()
|
|
13 combat_plane.xyz[0] = 45;
|
|
14 combat_plane.xyz[1] = 65;
|
|
15 combat_plane.xyz[2] = 0;
|
|
16 position_xyz[0] = combat_plane.xyz[0];
|
|
17 position_xyz[1] = combat_plane.xyz[1];
|
|
18 position_xyz[2] = combat_plane.xyz[2];
|
|
19 aim_xyz[0] = position_xyz[0];
|
|
20 aim_xyz[1] = position_xyz[1];
|
|
21 aim_xyz[2] = position_xyz[2] + 1;
|
|
22 cameraAngle_xyz[0] = 0;
|
|
23 cameraAngle_xyz[1] = 0;
|
|
24 cameraAngle_xyz[2] = 0;
|
|
25 player.addChild(combat_plane);
|
|
26 sgroot.nodeLocate(sgroot, 'Player', combat_plane);
|
|
27
|
|
28
|
|
29 combat_plane.scale = 0.05
|
|
30 combat_plane.set_move_collision(plane_move, combat_collision_3d)
|
|
31 combat_plane.limit_side = 75;
|
|
32 combat_plane.limit_wide = 125;
|
|
33 combat_plane.my_bullet = my_bullet;
|
|
34 combat_plane.enemy = sgroot.list['Enemy_main'];
|
|
35 combat_plane.enemy_bullet = sgroot.list['Enemy_bullet'];
|
|
36
|
|
37
|
|
38
|
|
39 var main = new sgroot.createSceneGraph1("chest_center_B")
|
|
40 main.angle[0] = -90
|
|
41 main.angle[1] = 200
|
|
42 main.angle[2] = -90
|
|
43 main.set_move_collision(main_move, no_collision_idle)
|
|
44 main.id = null;
|
|
45 position = 0;
|
|
46 position_wide = 0;
|
|
47 combat_plane.addChild(main)
|
|
48
|
|
49
|
|
50
|
|
51 var parts1 = new sgroot.createSceneGraph1("chest_center_B.001")
|
|
52 var parts2 = new sgroot.createSceneGraph1("chest_center_B.002")
|
|
53 var parts3 = new sgroot.createSceneGraph1("chest_center_B.003")
|
|
54 var parts4 = new sgroot.createSceneGraph1("chest_center_B.004")
|
|
55 var parts5 = new sgroot.createSceneGraph1("chest_center_B.005")
|
|
56 var parts6 = new sgroot.createSceneGraph1("chest_center_B.006")
|
|
57 var parts7 = new sgroot.createSceneGraph1("chest_center_B.007")
|
|
58 var parts8 = new sgroot.createSceneGraph1("chest_center_B.008")
|
|
59 var parts9 = new sgroot.createSceneGraph1("chest_center_B.009")
|
|
60 var parts10 = new sgroot.createSceneGraph1("chest_center_B.010")
|
|
61 var parts11 = new sgroot.createSceneGraph1("chest_center_B.011")
|
|
62 var parts12 = new sgroot.createSceneGraph1("chest_center_B.012")
|
|
63 var parts13 = new sgroot.createSceneGraph1("chest_center_B.013")
|
|
64 var parts14 = new sgroot.createSceneGraph1("chest_center_B.014")
|
|
65 var parts15 = new sgroot.createSceneGraph1("chest_center_B.015")
|
|
66 var parts16 = new sgroot.createSceneGraph1("chest_center_B.016")
|
|
67 var parts17 = new sgroot.createSceneGraph1("chest_center_B.017")
|
|
68 var parts18 = new sgroot.createSceneGraph1("chest_center_B.018")
|
|
69 var parts19 = new sgroot.createSceneGraph1("chest_center_B.019")
|
|
70 var parts20 = new sgroot.createSceneGraph1("chest_center_B.020")
|
|
71 var parts21 = new sgroot.createSceneGraph1("chest_center_B.021")
|
|
72 var parts22 = new sgroot.createSceneGraph1("chest_center_B.022")
|
|
73 var parts23 = new sgroot.createSceneGraph1("chest_center_B.023")
|
|
74 var parts24 = new sgroot.createSceneGraph1("chest_center_B.024")
|
|
75 var parts25 = new sgroot.createSceneGraph1("chest_center_B.025")
|
|
76 var parts26 = new sgroot.createSceneGraph1("chest_center_B.026")
|
|
77 var parts27 = new sgroot.createSceneGraph1("chest_center_B.027")
|
|
78 var parts28 = new sgroot.createSceneGraph1("chest_center_B.028")
|
|
79 var parts29 = new sgroot.createSceneGraph1("chest_center_B.029")
|
|
80 var parts30 = new sgroot.createSceneGraph1("chest_center_B.030")
|
|
81 var parts31 = new sgroot.createSceneGraph1("chest_center_B.031")
|
|
82 var parts32 = new sgroot.createSceneGraph1("chest_center_B.032")
|
|
83 var parts33 = new sgroot.createSceneGraph1("chest_center_B.033")
|
|
84 var parts34 = new sgroot.createSceneGraph1("chest_center_B.034")
|
|
85 var parts35 = new sgroot.createSceneGraph1("chest_center_B.035")
|
|
86 var parts36 = new sgroot.createSceneGraph1("chest_center_B.036")
|
|
87 var parts37 = new sgroot.createSceneGraph1("chest_center_B.037")
|
|
88 var parts38 = new sgroot.createSceneGraph1("chest_center_B.038")
|
|
89 var parts39 = new sgroot.createSceneGraph1("chest_center_B.039")
|
|
90 var parts40 = new sgroot.createSceneGraph1("chest_center_B.040")
|
|
91 var parts41 = new sgroot.createSceneGraph1("chest_center_B.041")
|
|
92 var parts42 = new sgroot.createSceneGraph1("chest_center_B.042")
|
|
93 var parts43 = new sgroot.createSceneGraph1("chest_center_B.043")
|
|
94 var parts44 = new sgroot.createSceneGraph1("chest_center_B.044")
|
|
95 var parts45 = new sgroot.createSceneGraph1("chest_center_B.045")
|
|
96 var parts46 = new sgroot.createSceneGraph1("chest_center_B.046")
|
|
97 var parts47 = new sgroot.createSceneGraph1("chest_center_B.047")
|
|
98 var parts48 = new sgroot.createSceneGraph1("chest_center_B.048")
|
|
99 var parts49 = new sgroot.createSceneGraph1("chest_center_B.049")
|
|
100 var parts50 = new sgroot.createSceneGraph1("chest_center_B.050")
|
|
101 var parts51 = new sgroot.createSceneGraph1("chest_center_B.051")
|
|
102 var parts52 = new sgroot.createSceneGraph1("chest_center_B.052")
|
|
103 var parts53 = new sgroot.createSceneGraph1("chest_center_B.053")
|
|
104 var parts54 = new sgroot.createSceneGraph1("chest_center_B.054")
|
|
105 var parts55 = new sgroot.createSceneGraph1("chest_center_B.055")
|
|
106 var parts56 = new sgroot.createSceneGraph1("chest_center_B.056")
|
|
107 var parts57 = new sgroot.createSceneGraph1("chest_center_B.057")
|
|
108 var parts58 = new sgroot.createSceneGraph1("chest_center_B.058")
|
|
109 var parts59 = new sgroot.createSceneGraph1("chest_center_B.059")
|
|
110 var parts60 = new sgroot.createSceneGraph1("chest_center_B.060")
|
|
111 var parts61 = new sgroot.createSceneGraph1("chest_center_B.061")
|
|
112 var parts62 = new sgroot.createSceneGraph1("chest_center_B.062")
|
|
113 var parts63 = new sgroot.createSceneGraph1("chest_center_B.063")
|
|
114 var parts64 = new sgroot.createSceneGraph1("chest_center_B.064")
|
|
115 var parts65 = new sgroot.createSceneGraph1("chest_center_B.065")
|
|
116 var parts66 = new sgroot.createSceneGraph1("chest_center_B.066")
|
|
117 var parts67 = new sgroot.createSceneGraph1("chest_center_B.067")
|
|
118 var parts68 = new sgroot.createSceneGraph1("chest_center_B.068")
|
|
119 var parts69 = new sgroot.createSceneGraph1("chest_center_B.069")
|
|
120 var parts70 = new sgroot.createSceneGraph1("chest_center_B.070")
|
|
121 var parts71 = new sgroot.createSceneGraph1("chest_center_B.071")
|
|
122 var parts72 = new sgroot.createSceneGraph1("chest_center_B.072")
|
|
123 var parts73 = new sgroot.createSceneGraph1("chest_center_B.073")
|
|
124 var parts74 = new sgroot.createSceneGraph1("chest_center_B.074")
|
|
125
|
|
126
|
|
127 main.addChild(parts1)
|
|
128 main.addChild(parts2)
|
|
129 main.addChild(parts3)
|
|
130 main.addChild(parts4)
|
|
131 main.addChild(parts5)
|
|
132 main.addChild(parts6)
|
|
133 main.addChild(parts7)
|
|
134 main.addChild(parts8)
|
|
135 main.addChild(parts9)
|
|
136 main.addChild(parts10)
|
|
137 main.addChild(parts11)
|
|
138 main.addChild(parts12)
|
|
139 main.addChild(parts13)
|
|
140 main.addChild(parts14)
|
|
141 main.addChild(parts15)
|
|
142 main.addChild(parts16)
|
|
143 main.addChild(parts17)
|
|
144 main.addChild(parts18)
|
|
145 main.addChild(parts19)
|
|
146 main.addChild(parts20)
|
|
147 main.addChild(parts21)
|
|
148 main.addChild(parts22)
|
|
149 main.addChild(parts23)
|
|
150 main.addChild(parts24)
|
|
151 main.addChild(parts25)
|
|
152 main.addChild(parts26)
|
|
153 main.addChild(parts27)
|
|
154 main.addChild(parts28)
|
|
155 main.addChild(parts29)
|
|
156 main.addChild(parts30)
|
|
157 main.addChild(parts31)
|
|
158 main.addChild(parts32)
|
|
159 main.addChild(parts33)
|
|
160 main.addChild(parts34)
|
|
161 main.addChild(parts35)
|
|
162 main.addChild(parts36)
|
|
163 main.addChild(parts37)
|
|
164 main.addChild(parts38)
|
|
165 main.addChild(parts39)
|
|
166 main.addChild(parts40)
|
|
167 main.addChild(parts41)
|
|
168 main.addChild(parts42)
|
|
169 main.addChild(parts43)
|
|
170 main.addChild(parts44)
|
|
171 main.addChild(parts45)
|
|
172 main.addChild(parts46)
|
|
173 main.addChild(parts47)
|
|
174 main.addChild(parts48)
|
|
175 main.addChild(parts49)
|
|
176 main.addChild(parts50)
|
|
177 main.addChild(parts51)
|
|
178 main.addChild(parts52)
|
|
179 main.addChild(parts53)
|
|
180 main.addChild(parts54)
|
|
181 main.addChild(parts55)
|
|
182 main.addChild(parts56)
|
|
183 main.addChild(parts57)
|
|
184 main.addChild(parts58)
|
|
185 main.addChild(parts59)
|
|
186 main.addChild(parts60)
|
|
187 main.addChild(parts61)
|
|
188 main.addChild(parts62)
|
|
189 main.addChild(parts63)
|
|
190 main.addChild(parts64)
|
|
191 main.addChild(parts65)
|
|
192 main.addChild(parts66)
|
|
193 main.addChild(parts67)
|
|
194 main.addChild(parts68)
|
|
195 main.addChild(parts69)
|
|
196 main.addChild(parts70)
|
|
197 main.addChild(parts71)
|
|
198 main.addChild(parts72)
|
|
199 main.addChild(parts73)
|
|
200 main.addChild(parts74)
|
|
201
|
|
202
|
|
203 return player
|
|
204
|
|
205 }
|
|
206
|
|
207
|
|
208
|
|
209 plane_move = function(node, sgroot, w ,h){
|
|
210 var move_eye = 1.0;
|
|
211 var move_walk = 3.0;
|
|
212 var PI = Math.PI;
|
|
213 var pad = new sgroot.getController();
|
|
214
|
|
215
|
|
216 if(pad.left_move_isHold() && node.xyz[0] >= -node.limit_side){
|
|
217
|
|
218 node.xyz[0] -= move_walk;
|
|
219 position += move_walk;
|
|
220 }
|
|
221
|
|
222 if(pad.right_move_isHold() && node.xyz[0] <= node.limit_side + 90){
|
|
223
|
|
224 node.xyz[0] += move_walk;
|
|
225 position -= move_walk;
|
|
226 }
|
|
227
|
|
228 if(pad.front_move_isHold() && node.xyz[1] >= 0){
|
|
229
|
|
230 node.xyz[1] -= move_walk;
|
|
231 }
|
|
232
|
|
233 if(pad.back_move_isHold() && node.xyz[1] <= 130){
|
|
234
|
|
235 node.xyz[1] += move_walk;
|
|
236 }
|
|
237
|
|
238 if(pad.start_isHold()){
|
|
239 var bullet_speed = 8;
|
|
240 var radian_xz = ((theta_xz%360)/360) * 2 * PI;
|
|
241 var radian_yz = ((cameraAngle_xyz[1]%90)/90) * (PI / 2);
|
|
242 var bullet = new sgroot.createSceneGraph1("yellow_3d");
|
|
243 bullet.xyz[0] = node.xyz[0];
|
|
244 bullet.xyz[1] = node.xyz[1];
|
|
245 bullet.xyz[2] = node.xyz[2];
|
|
246 bullet.dx = bullet_speed;
|
|
247 bullet.dy = 0.0;
|
|
248 bullet.dz = 0.0;
|
|
249 bullet.scale = 0.3;
|
|
250 bullet.enemy = node.enemy;
|
|
251 bullet.set_move_collision(bullet_move, no_collision_idle);
|
|
252 node.my_bullet.addChild(bullet);
|
|
253 }
|
|
254 }
|
|
255
|
|
256
|
|
257 rplane_move = function(node, sgroot, w ,h){
|
|
258 var move_eye = 1.0;
|
|
259 var move_walk = 3.0;
|
|
260 var PI = Math.PI;
|
|
261 var pad = new sgroot.getController();
|
|
262 var dx = position_xyz[0] - aim_xyz[0];
|
|
263 var dy = position_xyz[1] - aim_xyz[1];
|
|
264 var dz = position_xyz[2] - aim_xyz[2];
|
|
265 var d = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2) + Math.pow(dz,2));
|
|
266
|
|
267
|
|
268 if(pad.left_move_isHold() && node.xyz[2] <= node.limit_wide){
|
|
269 var radian = (((theta_xz+90)%360) / 360) * 2 * PI;
|
|
270
|
|
271 node.xyz[2] += move_walk;
|
|
272 position_wide -= move_walk;
|
|
273 }
|
|
274
|
|
275 if(pad.right_move_isHold() && node.xyz[2] >= -node.limit_wide){
|
|
276 var radian = (((theta_xz+90)%360) / 360) * 2 * PI;
|
|
277
|
|
278 node.xyz[2] -= move_walk;
|
|
279 position_wide += move_walk;
|
|
280
|
|
281 }
|
|
282
|
|
283 if(pad.front_move_isHold() && node.xyz[1] >= 0){
|
|
284 var radian = ((theta_xz%360) / 360) * 2 * PI;
|
|
285
|
|
286 node.xyz[1] -= move_walk;
|
|
287
|
|
288 }
|
|
289
|
|
290 if(pad.back_move_isHold() && node.xyz[1] <= 130){
|
|
291 var radian = ((theta_xz%360) / 360) * 2 * PI;
|
|
292
|
|
293 node.xyz[1] += move_walk;
|
|
294
|
|
295 }
|
|
296
|
|
297 if(pad.start_isHold() && node.frame%2){
|
|
298 var bullet_speed = 8;
|
|
299 var bullet = new sgroot.createSceneGraph1("yellow_3d");
|
|
300 bullet.xyz[0] = node.xyz[0];
|
|
301 bullet.xyz[1] = node.xyz[1];
|
|
302 bullet.xyz[2] = node.xyz[2];
|
|
303 bullet.dx = bullet_speed;
|
|
304 bullet.dy = 0.0;
|
|
305 bullet.dz = 0.0;
|
|
306 bullet.scale = 0.3;
|
|
307 bullet.set_move_collision(bullet_move, no_collision_idle);
|
|
308 node.my_bullet.addChild(bullet);
|
|
309 }
|
|
310 }
|
|
311
|
|
312 main_move = function(node, sgroot, w, h){
|
|
313 var move_eye = 3.0;
|
|
314 var PI = Math.PI;
|
|
315 var pad = new sgroot.getController();
|
|
316 var dx = node.parents.xyz[0] - position_xyz[0];
|
|
317 var dy = node.parents.xyz[1] - position_xyz[1];
|
|
318 var dz = node.parents.xyz[2] - position_xyz[2];
|
|
319 var d = 170
|
|
320 var radian_xz = ((theta_xz%360) / 360) * 2 * PI;
|
|
321 var radian_yz = ((theta_yz%360) / 360) * 2 * PI;
|
|
322
|
|
323 if(!node.flag_rotate && theta_xz <= 90){
|
|
324 //theta_xz = 90
|
|
325 theta_xz += move_eye*2;
|
|
326
|
|
327 var mv_x = d * Math.cos(radian_xz);
|
|
328 var mv_z = d * Math.sin(radian_xz);
|
|
329
|
|
330 position_xyz[0] = node.parents.xyz[0] - mv_x + position;
|
|
331 position_xyz[2] = node.parents.xyz[2] - mv_z;
|
|
332 aim_xyz[0] = position_xyz[0];
|
|
333 aim_xyz[2] = position_xyz[2] + 1;
|
|
334 console.log(position_xyz[0]);
|
|
335
|
|
336 cameraAngle_xyz[1] -= move_eye*2;
|
|
337 }
|
|
338
|
|
339 if(node.flag_rotate && theta_xz >= 0){
|
|
340 theta_xz -= move_eye*2;
|
|
341
|
|
342 var mv_x = d * Math.cos(radian_xz);
|
|
343 var mv_z = d * Math.sin(radian_xz);
|
|
344
|
|
345 position_xyz[0] = node.parents.xyz[0] - mv_x;
|
|
346 position_xyz[2] = node.parents.xyz[2] - mv_z + position_wide;
|
|
347 aim_xyz[0] = position_xyz[0];
|
|
348 aim_xyz[2] = position_xyz[2] + 1;
|
|
349 console.log(position_xyz[0]);
|
|
350
|
|
351 cameraAngle_xyz[1] += move_eye*2;
|
|
352 }
|
|
353
|
|
354
|
|
355 if(-6 < theta_xz && theta_xz < 96){
|
|
356 sgroot.move_now = true;
|
|
357 }else{
|
|
358 sgroot.move_now = false;
|
|
359 }
|
|
360
|
|
361 if(pad.space_isHold() && !node.flag_reverse){
|
|
362 if(node.flag_rotate == false){
|
|
363 node.parents.set_move_collision(rplane_move, combat_collision_3d);
|
|
364 }else{
|
|
365 node.parents.xyz[2] = 0;
|
|
366 position_wide = 0;
|
|
367 node.parents.set_move_collision(plane_move, combat_collision_3d);
|
|
368 }
|
|
369 node.flag_rotate = !node.flag_rotate;
|
|
370 node.flag_reverse = true;
|
|
371 }
|
|
372 if(pad.space_isRelease()){
|
|
373 node.flag_reverse = false;
|
|
374 }
|
|
375 }
|
|
376
|
|
377
|
|
378
|
|
379 combat_collision_2d = function(node, sgroot, w, h){
|
|
380 for(num in node.enemy_bullet.child){
|
|
381 var margin = node.enemy_bullet.child[num].margin;
|
|
382 var dx = node.enemy_bullet.child[num].xyz[0] + margin - node.xyz[0];
|
|
383 var dy = node.enemy_bullet.child[num].xyz[1] - node.xyz[1];
|
|
384 var ddx = dx*dx;
|
|
385 var ddy = dy*dy;
|
|
386 var r = Math.sqrt(ddx+ddy);
|
|
387
|
|
388 if(r < 4 && !sgroot.move_now){
|
|
389 node.all_remove(node);
|
|
390 }
|
|
391 }
|
|
392 }
|
|
393
|
|
394 combat_collision_3d = function(node, sgroot, w, h){
|
|
395 for(num in node.enemy_bullet.child){
|
|
396 var margin = node.enemy_bullet.child[num].margin;
|
|
397 var dx = node.enemy_bullet.child[num].xyz[0] + margin - node.xyz[0];
|
|
398 var dy = node.enemy_bullet.child[num].xyz[1] - node.xyz[1];
|
|
399 var dz = node.enemy_bullet.child[num].xyz[2] - node.xyz[2];
|
|
400 var ddx = dx*dx;
|
|
401 var ddy = dy*dy;
|
|
402 var ddz = dz*dz;
|
|
403 //var r = Math.sqrt(ddx+ddy+ddz);
|
|
404 var r2 = ddx+ddy+ddz;
|
|
405
|
|
406 if(r2 < 16 && !sgroot.move_now){
|
|
407 var game = new sgroot.createSceneGraph1("Game");
|
|
408 game.xyz[0] = 10;
|
|
409 game.xyz[1] = 0;
|
|
410 game.xyz[2] = -50;
|
|
411 game.angle[0] = 90;
|
|
412 game.scale = 0.4;
|
|
413 game.restart = sg_exec_tree;
|
|
414 game.set_move_collision(no_move_idle, game_over_collision);
|
|
415
|
|
416 var over = new sgroot.createSceneGraph1("Over");
|
|
417 over.xyz[0] = 0;
|
|
418 over.xyz[1] = 0;
|
|
419 over.xyz[2] =-80;
|
|
420 over.set_move_collision(no_move_idle, no_collision_idle);
|
|
421
|
|
422 game.addChild(over);
|
|
423 node.all_remove(node);
|
|
424 sgroot.setSceneData(game);
|
|
425 }
|
|
426 }
|
|
427 }
|
|
428
|
|
429
|
|
430
|
|
431
|
|
432
|