comparison Renderer/Test/player_action.cc @ 0:04e28d8d3c6f

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