Mercurial > hg > Members > kono > Cerium
annotate Renderer/Test/direction.cc @ 559:ccb33e5bcf89
direction
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 22 Oct 2009 19:10:03 +0900 |
parents | ec72b601b71f |
children | a5fda4e51498 |
rev | line source |
---|---|
507 | 1 #include "SceneGraphRoot.h" |
559 | 2 #include "direction.h" |
3 #include "xml_file/direction.xml.h" | |
507 | 4 |
5 static void | |
6 x_move(SceneGraphPtr node, int w, int h) | |
7 { | |
8 Pad *pad = sgroot->getController(); | |
9 | |
10 node->xyz[0] = w/2; | |
11 node->xyz[1] = h/2; | |
12 | |
13 if (pad->circle.isPush() || pad->circle.isHold()) { | |
14 node->angle[1] += 10.0f; | |
15 if (node->angle[1] > 360.0f) node->angle[1] = 0.0f; | |
16 } | |
17 | |
18 if (pad->triangle.isPush() || pad->triangle.isHold()) { | |
19 node->angle[0] += 10.0f; | |
20 if (node->angle[0] > 360.0f) node->angle[0] = 0.0f; | |
21 } | |
22 | |
23 if (pad->start.isPush()) { | |
24 node->angle[0] = 0.0f; | |
25 node->angle[1] = 90.0f; | |
26 } | |
27 | |
28 } | |
29 | |
30 static void | |
31 y_move(SceneGraphPtr node, int w, int h) | |
32 { | |
33 Pad *pad = sgroot->getController(); | |
34 | |
35 node->xyz[0] = w/2; | |
36 node->xyz[1] = h/2; | |
37 | |
38 if (pad->cross.isPush() || pad->cross.isHold()) { | |
39 node->angle[2] += 10.0f; | |
40 } | |
41 | |
42 if (pad->square.isPush() || pad->square.isHold()) { | |
43 node->angle[0] += 10.0f; | |
44 } | |
45 | |
46 if (pad->start.isPush()) { | |
47 node->angle[0] = 90.0f; | |
48 node->angle[1] = 0.0f; | |
49 } | |
50 | |
51 } | |
52 | |
53 static void | |
54 z_move(SceneGraphPtr node, int w, int h) | |
55 { | |
56 node->xyz[0] = w/2; | |
57 node->xyz[1] = h/2; | |
58 } | |
59 | |
60 static void | |
61 dir_collision(SceneGraphPtr node, int w, int h, SceneGraphPtr tree) | |
62 { | |
63 } | |
64 | |
557
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
65 MainLoopPtr |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
66 direction::init(Viewer *sgroot, int screen_w, int screen_h) |
507 | 67 { |
68 SceneGraphPtr dx; | |
69 SceneGraphPtr dy; | |
70 SceneGraphPtr dz; | |
71 SceneGraphPtr back; | |
72 | |
559 | 73 sgroot->createFromXMLfile("xml_file/direction.xml"); |
507 | 74 |
75 dx = sgroot->createSceneGraph(Dirx); | |
76 dy = sgroot->createSceneGraph(Diry); | |
77 dz = sgroot->createSceneGraph(Dirz); | |
78 back = sgroot->createSceneGraph(); | |
79 | |
80 back->addChild(dx); | |
81 back->addChild(dy); | |
82 back->addChild(dz); | |
83 | |
84 dx->set_move_collision(x_move, dir_collision); | |
85 dx->angle[1] = 90.0f; | |
86 dy->set_move_collision(y_move, dir_collision); | |
87 dy->angle[0] = 90.0f; | |
88 dz->set_move_collision(z_move, dir_collision); | |
89 | |
90 back->angle[0] = 30.0f; | |
91 back->angle[1] = -30.0f; | |
92 | |
93 sgroot->setSceneData(back); | |
557
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
94 return sgroot; |
507 | 95 } |
557
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
96 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
97 extern Application * |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
98 application() { |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
99 return new direction(); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
100 } |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
101 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
102 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n"; |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
103 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
104 extern int init(TaskManager *manager, int argc, char *argv[]); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
105 extern void task_initialize(); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
106 static void TMend(TaskManager *manager); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
107 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
108 int |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
109 TMmain(TaskManager *manager, int argc, char *argv[]) |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
110 { |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
111 task_initialize(); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
112 manager->set_TMend(TMend); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
113 return init(manager, argc, argv); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
114 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
115 } |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
116 |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
117 void |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
118 TMend(TaskManager *manager) |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
119 { |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
120 printf("test_nogl end\n"); |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
121 } |
ec72b601b71f
fix examlples (on going)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
508
diff
changeset
|
122 |