annotate Renderer/test_render/player_action.cpp @ 422:976ca6f00d65

comment
author game@henri.cr.ie.u-ryukyu.ac.jp
date Thu, 24 Sep 2009 12:35:32 +0900
parents 55ea4465b1a2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
283
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
1 #include "SceneGraphRoot.h"
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
2 #include "bullet_action.h"
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
3 #include "SGList.h"
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
4
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
5 #define MOVE_SPEED 5.00
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
6
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
7
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
8 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
9 player_move_right(SceneGraphPtr node, int screen_w, int screen_h)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
10 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
11 if(node->xyz[0]<screen_w/2)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
12 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
13 node->xyz[0] += MOVE_SPEED;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
14 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
15 if(node->angle[1]<=20)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
16 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
17 node->angle[1]+=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
18 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
19 if(node->angle[2]>=-45)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
20 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
21 node->angle[2]-=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
22 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
23 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
24
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
25 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
26 player_move_left(SceneGraphPtr node, int screen_w, int screen_h)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
27 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
28 if(node->xyz[0]> -screen_w/2)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
29 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
30 node->xyz[0] -= MOVE_SPEED;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
31 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
32 if(node->angle[1]>=-20)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
33 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
34 node->angle[1]-=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
35 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
36 if(node->angle[2]<=45)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
37 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
38 node->angle[2]+=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
39 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
40 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
41
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
42 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
43 player_move_up(SceneGraphPtr node, int screen_w, int screen_h)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
44 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
45 if(node->xyz[2]<screen_h/2 + 100)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
46 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
47 node->xyz[2] += MOVE_SPEED;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
48 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
49 if(node->angle[0]<45)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
50 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
51 node->angle[0] += 2.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
52 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
53 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
54
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
55 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
56 player_move_down(SceneGraphPtr node, int screen_w, int screen_h)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
57 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
58 if(node->xyz[2]> -screen_h/2)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
59 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
60 node->xyz[2] -= MOVE_SPEED;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
61 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
62 if(node->angle[0]>-45)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
63 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
64 node->angle[0] -= 2.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
65 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
66 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
67
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
68 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
69 player_move_idle(SceneGraphPtr node)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
70 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
71 if (node->angle[1]>0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
72 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
73 node->angle[1]-=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
74 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
75 else if(node->angle[1]<0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
76 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
77 node->angle[1]+=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
78 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
79
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
80 if(node->angle[2]<0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
81 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
82 node->angle[2]+=0.5;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
83 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
84 else if(node->angle[2]>0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
85 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
86 node->angle[2]-=0.5;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
87 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
88
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
89 if(node->angle[0]<0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
90 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
91 node->angle[0]+=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
92 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
93 else if(node->angle[0]>0)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
94 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
95 node->angle[0]-=1.0;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
96 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
97 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
98
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
99 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
100 player_move_all(SceneGraphPtr node, int screen_w, int screen_h)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
101 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
102 Pad *pad = sgroot->getController();
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
103
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
104 if (pad->right.isHold() || pad->left.isHold() ||
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
105 pad->up.isHold() || pad->down.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
106 if (pad->right.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
107 player_move_right(node, screen_w, screen_h);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
108 } else if (pad->left.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
109 player_move_left(node, screen_w, screen_h);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
110 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
111
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
112 if (pad->down.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
113 player_move_up(node, screen_w, screen_h);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
114 } else if(pad->up.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
115 player_move_down(node, screen_w, screen_h);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
116 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
117 } else {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
118 player_move_idle(node);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
119 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
120
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
121 if (pad->r2.isHold()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
122 node->xyz[2] -= 10.0f;
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
123 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
124
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
125 if (pad->circle.isPush()) {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
126 SceneGraphPtr bullet = sgroot->createSceneGraph(BULEBULLET);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
127 bullet->set_move_collision(bluebullet_move, bullet_collision);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
128 bullet_init(bullet, node);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
129 node->addBrother(bullet);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
130 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
131 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
132
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
133 void
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
134 player_collision(SceneGraphPtr node, int screen_w, int screen_h,
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
135 SceneGraphPtr tree)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
136 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
137 #if 0
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
138 int judge = square_judge(node, BULEBULLET, scene_graph);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
139
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
140 if (judge == HIT)
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
141 {
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
142 node->set_move_collision(player_move_all,player_collision);
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
143 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
144 #endif
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
145 }
55ea4465b1a2 fix test_render
e065746@localhost.localdomain
parents:
diff changeset
146