annotate Renderer/Test/vacuum.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <math.h>
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include "vacuum.h"
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #include "SceneGraphRoot.h"
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #define ENCOUNT 55
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 using namespace std;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 static float vacuum_speed = 10.0f;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 /*オブジェクト毎にファイルを分けてみた
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 *
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 *
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 */
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 no_move_idle(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 no_collision_idle(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,SceneGraphPtr tree)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 int redcube;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 int enemy;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 vacuum_coll(SceneGraphPtr node, void *sgroot_, int screen_w, int screen_h,
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 SceneGraphPtr tree)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 Pad *pad = sgroot->getController();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 if(node->frame%ENCOUNT == ENCOUNT-1) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 if(random()%2) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 add_cubecollision_object(redcube,node,screen_w,screen_h, sgroot);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 else {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 add_cubecollision_object(enemy,node,screen_w,screen_h, sgroot);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 if (pad->cross.isHold()) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 SceneGraphIteratorPtr it = sgroot->getIterator(tree);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 collision_red(it,node);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 it = sgroot->getIterator(tree);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 collision_purple(it,node,screen_w,screen_h, sgroot);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 else if(pad->circle.isHold()) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 SceneGraphIteratorPtr it = sgroot->getIterator(tree);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 lock_attack(node, it, sgroot);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 lock_attack(SceneGraphPtr node,SceneGraphIteratorPtr it, SceneGraphRoot *sgroot)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 SceneGraphPtr e;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 SceneGraphPtr near_enemy = NULL;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 float dx,dy,r,range = 100;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 // Pad *pad = sgroot->getController();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 for(;it->hasNext(enemy);) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 it->next(enemy);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 e = it->get();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 dx = e->xyz[0] - node->xyz[0];
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 dy = e->xyz[1] - node->xyz[1];
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 r = sqrt(dx*dx+dy*dy);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 if(range > r && e->stack_xyz[2] == 0) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 range = r;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 near_enemy = e;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 if(near_enemy != NULL) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 /*stack_xyz[2]をlockonフラグとして使うかな?*/
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 SceneGraphPtr lockon;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 // SceneGraphPtr near_enemy_common_move = near_enemy->parent;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 near_enemy->stack_xyz[2] = 1;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 lockon = sgroot->createSceneGraph("LOCK");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 lockon->set_move_collision(no_move_idle,lockon_collision);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 //near_enemy_common_move->addChild(lockon);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 near_enemy->addChild(lockon);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 lockon_collision(SceneGraphPtr node, void *sgroot_, int w, int h, SceneGraphPtr tree) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 Pad *pad = sgroot->getController();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 SceneGraphPtr lockon_enemy = node->parent;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 /* node->angle[0] = -lockon_enemy->angle[0];
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 node->angle[1] = -lockon_enemy->angle[1];
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 node->angle[2] = -lockon_enemy->angle[2];*/
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 if(pad->circle.isRelease()) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 lockon_enemy->remove();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 vacuum_move(SceneGraphPtr node, void *sgroot_, int w, int h)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 Pad *pad = sgroot->getController();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 if (pad->right.isHold() && w > node->xyz[0]) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 node->xyz[0] += vacuum_speed;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 node->angle[0] += 2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 } else if (pad->left.isHold() && 0 < node->xyz[0]) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 node->xyz[0] -= vacuum_speed;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 node->angle[0] -= 2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 if (pad->up.isHold() && 0 < node->xyz[1]) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 node->xyz[1] -= vacuum_speed;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 node->angle[1] -= 2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 } else if (pad->down.isHold() && h > node->xyz[1]) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 node->xyz[1] += vacuum_speed;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 node->angle[1] += 2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 if (pad->start.isPush()) {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 node->xyz[0] = w/2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 node->xyz[1] = h*0.8;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 /*cubeをランダムな場所に生成*/
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 add_cubecollision_object(int id,SceneGraphPtr root,int w,int h, SceneGraphRoot *sgroot)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 SceneGraphPtr object;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 SceneGraphPtr common_move;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 common_move = sgroot->createSceneGraph();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 object = sgroot->createSceneGraph(id);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 object->xyz[0] = random()%w;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 object->xyz[1] = random()%h;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 object->set_move_collision(no_move_idle,cube_collision);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 //common_move->addChild(object);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 root->addBrother(object);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 MainLoopPtr
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 vacuum::init(Viewer *sgroot, int w, int h)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 SceneGraphPtr title;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 sgroot->createFromXMLfile( "xml_file/gamecube.xml");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 sgroot->createFromXMLfile( "xml_file/title.xml");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 sgroot->createFromXMLfile( "xml_file/gameover.xml");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 title = sgroot->createSceneGraph("TITLE");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 title->xyz[0] = w/2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 title->xyz[1] = h/2;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 title->set_move_collision(no_move_idle, title_collision);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 sgroot->setSceneData(title);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 redcube = sgroot->getSgid("REDCUBE");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 enemy = sgroot->getSgid("ENEMY");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 return sgroot;
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 extern Application *
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 application() {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 return new vacuum();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n";
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 extern int init(TaskManager *manager, int argc, char *argv[]);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 extern void task_initialize();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 static void TMend(TaskManager *manager);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 int
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 TMmain(TaskManager *manager, int argc, char *argv[])
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 task_initialize();
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 manager->set_TMend(TMend);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 return init(manager, argc, argv);
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 void
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 TMend(TaskManager *manager)
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 {
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 printf("test_nogl end\n");
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 }
04e28d8d3c6f first commit
Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210