annotate TaskManager/Test/test_render/bullet_action.cpp @ 224:ebfb9e389716

SceneGraph.cpp xmlcreate
author tkaito@nw0534.st.ie.u-ryukyu.ac.jp
date Tue, 10 Feb 2009 20:45:51 +0900
parents 159519cdca1f
children e1d24c951408
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
1 #include <math.h>
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
2 #include "SceneGraphRoot.h"
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
3 #include "SGList.h"
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
4 #include "hit_judge.h"
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
5 #define PI M_PI
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
6
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
7 int i = 0;
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
8
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
9 void
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
10 bullet_init(SceneGraphPtr bullet, SceneGraphPtr player)
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
11 {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
12 bullet->xyz[0] = player->xyz[0];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
13 bullet->xyz[1] = player->xyz[1];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
14 bullet->xyz[2] = player->xyz[2];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
15
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
16 bullet->angle[0] = player->angle[0];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
17 bullet->angle[1] = player->angle[1];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
18 bullet->angle[2] = player->angle[2];
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
19 }
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
20
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
21 void
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
22 bluebullet_move(SceneGraphPtr node, int screen_w, int screen_h)
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
23 {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
24 double a = (node->angle[2]+90)*PI/180;
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
25 double b = (node->angle[0]+90)*PI/180;
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
26
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
27 double y = sin(a);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
28 double x = cos(a);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
29 double z = -cos(b);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
30
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
31 node->xyz[0] += x * 5;//x軸方向
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
32 node->xyz[1] += y * 5;//y軸方向
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
33 node->xyz[2] += z * 5;//z軸方向
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
34 }
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
35
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
36 void
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
37 bullet_collision(SceneGraphPtr node, int screen_w, int screen_h, SceneGraphPtr tree)
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
38 {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
39 SceneGraphIteratorPtr it = sgroot->getIterator(tree);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
40 static int damage = 0;
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
41
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
42 for (; it->hasNext(E_PLANE);) {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
43 it->next(E_PLANE);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
44 SceneGraphPtr enemy = it->get();
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
45
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
46 int judge = square_judge(node, enemy);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
47 if(judge == HIT)
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
48 {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
49 //node->set_move_collision(null_move, bullet_collision);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
50 //E_PLANE->set_move_collision(null_move, enemy_collision);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
51 enemy->remove();
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
52 node->remove();
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
53 //printf("hit!!!\n");
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
54 //bullet_delete(node, scene_graph);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
55 }
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
56 }
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
57
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
58 if(node->xyz[1] > 100)
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
59 {
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
60 node->remove();
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
61 //scene_graph->delete_object(node, node->next,node->prev);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
62 //i -= 1;
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
63 //printf("bullet_delete:残り弾数=%d\n",i);
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
64 }
159519cdca1f add SceneGraph "3D Super-Dandy"
gongo@localhost.localdomain
parents:
diff changeset
65 }