2
|
1 #include "SceneGraphRoot.h"
|
|
2 #include "dandy.h"
|
|
3
|
|
4 SceneGraphPtr *dandys;
|
|
5
|
|
6 void def_angle(SceneGraphPtr node, void *sgroot_, int w, int h);
|
|
7 void left_angle(SceneGraphPtr node, void *sgroot_, int w, int h);
|
|
8 void right_angle(SceneGraphPtr node, void *sgroot_, int w, int h);
|
|
9
|
|
10 void
|
|
11 dandy_move(SceneGraphPtr node, void *sgroot_, int w, int h)
|
|
12 {
|
|
13 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
|
|
14 Pad *pad = sgroot->getController();
|
|
15
|
|
16 /* 左右の移動 */
|
|
17 if (pad->right.isPush() && w > node->xyz[0]) {
|
|
18 right_angle(node, sgroot, w, h);
|
|
19 } else if (pad->left.isPush() && 0 < node->xyz[0]) {
|
|
20 left_angle(node, sgroot, w, h);
|
|
21 } else {
|
|
22 //def_angle(node, sgroot, w, h);
|
|
23 }
|
|
24 if (pad->right.isHold() && w > node->xyz[0]) {
|
|
25 node->xyz[0] += 10.0f;
|
|
26 } else if (pad->left.isHold() && 0 < node->xyz[0]) {
|
|
27 node->xyz[0] -= 10.0f;
|
|
28 }
|
|
29 if (pad->right.isRelease()) {
|
|
30
|
|
31 } else if(pad->left.isRelease()) {
|
|
32
|
|
33 }
|
|
34 /* 上下の移動 */
|
|
35 if (pad->up.isHold() && 0 < node->xyz[1]) {
|
|
36 node->xyz[1] -= 10.0f;
|
|
37 //def_angle(node, sgroot, w, h);
|
|
38 } else if (pad->down.isHold() && h > node->xyz[1]) {
|
|
39 node->xyz[1] += 10.0f;
|
|
40 }
|
|
41 }
|
|
42
|
|
43 void
|
|
44 dandy_collision(SceneGraphPtr node, void *sgroot_, int w, int h,SceneGraphPtr tree)
|
|
45 {
|
|
46
|
|
47 }
|
|
48
|
|
49 /* 時機や敵機のオブジェクトや何やらを作成してsetSceneDataまで */
|
|
50 void
|
|
51 create_object(void *sgroot_, int w, int h)
|
|
52 {
|
|
53 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
|
|
54 SceneGraphPtr dandy, rdandy, rtdandy, ldandy, ltdandy;
|
|
55 //SceneGraphPtr tmp[5] = {ldandy, ltdandy, dandy, rtdandy, rtdandy};
|
|
56 //dandys = tmp;
|
|
57
|
|
58 SceneGraphPtr back = sgroot->createSceneGraph();
|
|
59
|
|
60 dandy = sgroot->createSceneGraph("mydandy");
|
|
61 ldandy = sgroot->createSceneGraph("l-dandy");
|
|
62 ltdandy = sgroot->createSceneGraph("lt-dandy");
|
|
63 rdandy = sgroot->createSceneGraph("r-dandy");
|
|
64 rtdandy = sgroot->createSceneGraph("rt-dandy");
|
|
65
|
|
66 dandy->xyz[0] = w/2;
|
|
67 dandy->xyz[1] = h*0.9;
|
|
68
|
|
69 dandy->set_move_collision(dandy_move, dandy_collision);
|
|
70 //ldandy->set_move_collision(dandy_move, dandy_collision);
|
|
71 ltdandy->set_move_collision(dandy_move, dandy_collision);
|
|
72 rdandy->set_move_collision(dandy_move, dandy_collision);
|
|
73 rtdandy->set_move_collision(dandy_move, dandy_collision);
|
|
74
|
|
75 back->addChild(dandy);
|
|
76 sgroot->setSceneData(back);
|
|
77 }
|
|
78
|
|
79 void
|
|
80 def_angle(SceneGraphPtr node, void *sgroot_, int w, int h)
|
|
81 {
|
|
82
|
|
83 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
|
|
84 SceneGraphPtr dandy = sgroot->createSceneGraph("mydandy");
|
|
85 SceneGraphPtr back = sgroot->createSceneGraph();
|
|
86
|
|
87 dandy->xyz[0] = node->xyz[0];
|
|
88 dandy->xyz[1] = node->xyz[1];
|
|
89
|
|
90 dandy->set_move_collision(dandy_move, dandy_collision);
|
|
91
|
|
92 back->addChild(dandy);
|
|
93 sgroot->setSceneData(back);
|
|
94 }
|
|
95
|
|
96 void
|
|
97 right_angle(SceneGraphPtr node, void *sgroot_, int w, int h)
|
|
98 {
|
|
99 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
|
|
100 SceneGraphPtr rtdandy;
|
|
101 SceneGraphPtr back = sgroot->createSceneGraph();
|
|
102
|
|
103 rtdandy = sgroot->createSceneGraph("rt-dandy");
|
|
104
|
|
105 rtdandy->xyz[0] = node->xyz[0];
|
|
106 rtdandy->xyz[1] = node->xyz[1];
|
|
107
|
|
108 rtdandy->set_move_collision(dandy_move, dandy_collision);
|
|
109 back->addChild(rtdandy);
|
|
110
|
|
111 sgroot->setSceneData(back);
|
|
112 rtdandy->xyz[0] += 1.0f;
|
|
113 }
|
|
114 void
|
|
115 left_angle(SceneGraphPtr node, void *sgroot_, int w, int h)
|
|
116 {
|
|
117 SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_;
|
|
118 SceneGraphPtr ltdandy;
|
|
119 SceneGraphPtr back = sgroot->createSceneGraph();
|
|
120
|
|
121 ltdandy = sgroot->createSceneGraph("lt-dandy");
|
|
122
|
|
123 ltdandy->xyz[0] = node->xyz[0];
|
|
124 ltdandy->xyz[1] = node->xyz[1];
|
|
125
|
|
126 ltdandy->set_move_collision(dandy_move, dandy_collision);
|
|
127 back->addChild(ltdandy);
|
|
128
|
|
129 sgroot->setSceneData(back);
|
|
130 ltdandy->xyz[0] -= 1.0f;
|
|
131 }
|