Mercurial > hg > Members > kono > Cerium
diff Renderer/test_render/direction.cpp @ 283:55ea4465b1a2
fix test_render
author | e065746@localhost.localdomain |
---|---|
date | Fri, 05 Jun 2009 16:49:12 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Renderer/test_render/direction.cpp Fri Jun 05 16:49:12 2009 +0900 @@ -0,0 +1,93 @@ +#include "SceneGraphRoot.h" +#include "SGList.h" + +static void +x_move(SceneGraphPtr node, int w, int h) +{ + Pad *pad = sgroot->getController(); + + node->xyz[0] = w/2; + node->xyz[1] = h/2; + + if (pad->circle.isPush() || pad->circle.isHold()) { + node->angle[1] += 10.0f; + if (node->angle[1] > 360.0f) node->angle[1] = 0.0f; + } + + if (pad->triangle.isPush() || pad->triangle.isHold()) { + node->angle[0] += 10.0f; + if (node->angle[0] > 360.0f) node->angle[0] = 0.0f; + } + + if (pad->start.isPush()) { + node->angle[0] = 0.0f; + node->angle[1] = 90.0f; + } + +} + +static void +y_move(SceneGraphPtr node, int w, int h) +{ + Pad *pad = sgroot->getController(); + + node->xyz[0] = w/2; + node->xyz[1] = h/2; + + if (pad->cross.isPush() || pad->cross.isHold()) { + node->angle[2] += 10.0f; + } + + if (pad->square.isPush() || pad->square.isHold()) { + node->angle[0] += 10.0f; + } + + if (pad->start.isPush()) { + node->angle[0] = 90.0f; + node->angle[1] = 0.0f; + } + +} + +static void +z_move(SceneGraphPtr node, int w, int h) +{ + node->xyz[0] = w/2; + node->xyz[1] = h/2; +} + +static void +dir_collision(SceneGraphPtr node, int w, int h, SceneGraphPtr tree) +{ +} + +void +direction_init(void) +{ + SceneGraphPtr dx; + SceneGraphPtr dy; + SceneGraphPtr dz; + SceneGraphPtr back; + + sgroot->createFromXMLfile("xml_file/direction.xml"); + + dx = sgroot->createSceneGraph(Dirx); + dy = sgroot->createSceneGraph(Diry); + dz = sgroot->createSceneGraph(Dirz); + back = sgroot->createSceneGraph(); + + back->addChild(dx); + back->addChild(dy); + back->addChild(dz); + + dx->set_move_collision(x_move, dir_collision); + dx->angle[1] = 90.0f; + dy->set_move_collision(y_move, dir_collision); + dy->angle[0] = 90.0f; + dz->set_move_collision(z_move, dir_collision); + + back->angle[0] = 30.0f; + back->angle[1] = -30.0f; + + sgroot->setSceneData(back); +}