Mercurial > hg > Members > tkaito > dandy
diff mydandy.cc @ 2:69b4108bf4e8
refact few
author | tkaito |
---|---|
date | Sun, 06 Jun 2010 03:22:11 +0900 |
parents | |
children | dca6d5d2ef46 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mydandy.cc Sun Jun 06 03:22:11 2010 +0900 @@ -0,0 +1,131 @@ +#include "SceneGraphRoot.h" +#include "dandy.h" + +SceneGraphPtr *dandys; + +void def_angle(SceneGraphPtr node, void *sgroot_, int w, int h); +void left_angle(SceneGraphPtr node, void *sgroot_, int w, int h); +void right_angle(SceneGraphPtr node, void *sgroot_, int w, int h); + +void +dandy_move(SceneGraphPtr node, void *sgroot_, int w, int h) +{ + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; + Pad *pad = sgroot->getController(); + + /* 左右の移動 */ + if (pad->right.isPush() && w > node->xyz[0]) { + right_angle(node, sgroot, w, h); + } else if (pad->left.isPush() && 0 < node->xyz[0]) { + left_angle(node, sgroot, w, h); + } else { + //def_angle(node, sgroot, w, h); + } + if (pad->right.isHold() && w > node->xyz[0]) { + node->xyz[0] += 10.0f; + } else if (pad->left.isHold() && 0 < node->xyz[0]) { + node->xyz[0] -= 10.0f; + } + if (pad->right.isRelease()) { + + } else if(pad->left.isRelease()) { + + } + /* 上下の移動 */ + if (pad->up.isHold() && 0 < node->xyz[1]) { + node->xyz[1] -= 10.0f; + //def_angle(node, sgroot, w, h); + } else if (pad->down.isHold() && h > node->xyz[1]) { + node->xyz[1] += 10.0f; + } +} + +void +dandy_collision(SceneGraphPtr node, void *sgroot_, int w, int h,SceneGraphPtr tree) +{ + +} + +/* 時機や敵機のオブジェクトや何やらを作成してsetSceneDataまで */ +void +create_object(void *sgroot_, int w, int h) +{ + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; + SceneGraphPtr dandy, rdandy, rtdandy, ldandy, ltdandy; + //SceneGraphPtr tmp[5] = {ldandy, ltdandy, dandy, rtdandy, rtdandy}; + //dandys = tmp; + + SceneGraphPtr back = sgroot->createSceneGraph(); + + dandy = sgroot->createSceneGraph("mydandy"); + ldandy = sgroot->createSceneGraph("l-dandy"); + ltdandy = sgroot->createSceneGraph("lt-dandy"); + rdandy = sgroot->createSceneGraph("r-dandy"); + rtdandy = sgroot->createSceneGraph("rt-dandy"); + + dandy->xyz[0] = w/2; + dandy->xyz[1] = h*0.9; + + dandy->set_move_collision(dandy_move, dandy_collision); + //ldandy->set_move_collision(dandy_move, dandy_collision); + ltdandy->set_move_collision(dandy_move, dandy_collision); + rdandy->set_move_collision(dandy_move, dandy_collision); + rtdandy->set_move_collision(dandy_move, dandy_collision); + + back->addChild(dandy); + sgroot->setSceneData(back); +} + +void +def_angle(SceneGraphPtr node, void *sgroot_, int w, int h) +{ + + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; + SceneGraphPtr dandy = sgroot->createSceneGraph("mydandy"); + SceneGraphPtr back = sgroot->createSceneGraph(); + + dandy->xyz[0] = node->xyz[0]; + dandy->xyz[1] = node->xyz[1]; + + dandy->set_move_collision(dandy_move, dandy_collision); + + back->addChild(dandy); + sgroot->setSceneData(back); +} + +void +right_angle(SceneGraphPtr node, void *sgroot_, int w, int h) +{ + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; + SceneGraphPtr rtdandy; + SceneGraphPtr back = sgroot->createSceneGraph(); + + rtdandy = sgroot->createSceneGraph("rt-dandy"); + + rtdandy->xyz[0] = node->xyz[0]; + rtdandy->xyz[1] = node->xyz[1]; + + rtdandy->set_move_collision(dandy_move, dandy_collision); + back->addChild(rtdandy); + + sgroot->setSceneData(back); + rtdandy->xyz[0] += 1.0f; +} +void +left_angle(SceneGraphPtr node, void *sgroot_, int w, int h) +{ + SceneGraphRoot *sgroot = (SceneGraphRoot *)sgroot_; + SceneGraphPtr ltdandy; + SceneGraphPtr back = sgroot->createSceneGraph(); + + ltdandy = sgroot->createSceneGraph("lt-dandy"); + + ltdandy->xyz[0] = node->xyz[0]; + ltdandy->xyz[1] = node->xyz[1]; + + ltdandy->set_move_collision(dandy_move, dandy_collision); + back->addChild(ltdandy); + + sgroot->setSceneData(back); + ltdandy->xyz[0] -= 1.0f; +}