Mercurial > hg > Game > Cerium
view TaskManager/Test/test_render/Application/direction.cc @ 431:b40a9b901d71 draft
fix
author | game@henri.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Thu, 24 Sep 2009 20:43:14 +0900 |
parents | 2c592936bbdf |
children | 8d86242337ba |
line wrap: on
line source
#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(TaskManager *manager) { SceneGraphPtr dx; SceneGraphPtr dy; SceneGraphPtr dz; SceneGraphPtr back; sgroot->createFromXMLfile(manager, "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); }