# HG changeset patch # User tokumoritaichirou@w-133-13-243-110.cc.u-ryukyu.ac.jp # Date 1265189588 -32400 # Node ID d45a95c697c307c98da11a069988e7e954b7194a # Parent 4727e16018cd12d22d05b5971b9f490de45627d0 add GiantrobClassfile. diff -r 4727e16018cd -r d45a95c697c3 src/GameManager.cpp --- a/src/GameManager.cpp Wed Feb 03 12:02:57 2010 +0900 +++ b/src/GameManager.cpp Wed Feb 03 18:33:08 2010 +0900 @@ -109,7 +109,7 @@ sTick = osg::Timer::instance()->tick(); - Robot* movObj = new Robot("robo2"); + Giantarm* movObj = new Giantarm("robo2"); //movObj->setPos(osg::Vec3(-10,0,0)); movObj->setDefaultDirection(osg::Vec3(0.0, 0.0, 90)); movObj->setAvatarDirection(-1); diff -r 4727e16018cd -r d45a95c697c3 src/GameManager.h --- a/src/GameManager.h Wed Feb 03 12:02:57 2010 +0900 +++ b/src/GameManager.h Wed Feb 03 18:33:08 2010 +0900 @@ -41,6 +41,7 @@ #include "PlayerEyePoint.h" #include "KeyboardEventHandler.h" #include "Robot.h" +#include "Giantarm.h" #include "CollisionDetector.h" #include "Player.h" diff -r 4727e16018cd -r d45a95c697c3 src/Robot.cpp --- a/src/Robot.cpp Wed Feb 03 12:02:57 2010 +0900 +++ b/src/Robot.cpp Wed Feb 03 18:33:08 2010 +0900 @@ -38,25 +38,25 @@ bodyForm->setMatrix(osg::Matrix()); collisionNode = new CollisionNode("Body-Node1", new osg::Sphere(osg::Vec3(0, 0, 0), 50)); - //bodyForm->addChild(collisionNode->getGeode()); + bodyForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Body-Node2", new osg::Sphere(osg::Vec3(0, 0, 60), 50)); - //bodyForm->addChild(collisionNode->getGeode()); + bodyForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Body-Node3", new osg::Sphere(osg::Vec3(0, 0, -60), 50)); - //bodyForm->addChild(collisionNode->getGeode()); + bodyForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Left-Arm-Node", new osg::Sphere(osg::Vec3(100, -40, -70), 30)); - //leftUpperArmForm->addChild(collisionNode->getGeode()); + leftUpperArmForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Right-Arm-Node", new osg::Sphere(osg::Vec3(-100, -40, -70), 30)); - //rightUpperArmForm->addChild(collisionNode->getGeode()); + rightDownArmForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Left-Leg-Node", new osg::Sphere(osg::Vec3(0, 0, 0), 30)); - //leftUpperLegForm->addChild(collisionNode->getGeode()); + leftUpperLegForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); collisionNode = new CollisionNode("Right-Leg-Node", new osg::Sphere(osg::Vec3(0, 0, 0), 30)); - //rightUpperLegForm->addChild(collisionNode->getGeode()); + rightUpperLegForm->addChild(collisionNode->getGeode()); collisionNodeList.push_back(collisionNode); SearchGeodeVisitor gvisitor = SearchGeodeVisitor(); @@ -217,14 +217,14 @@ void Robot::punch() { float sinVal = sin(moveCount); float cosVal = cos(moveCount); - double punch[6][3] = {{5.0,-30.0,-30.0},{10.0,-30.0,-90.0},{15.0,-120.0,60.0}}; + double punch[6][3] = {{5.0,-30.0,-30.0},{10.0,-90.0,-90.0},{15.0,-90.0,60.0},{15.0,-90.0,60.0},{10.0,-90.0,-90.0},{0.0,0.0,0.0}}; osg::Matrixd roteMatrix; osg::Matrixd dirMatrix; osg::Matrixd accMatrix; - bodyForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%3][0]), osg::Vec3(0,0,1))); - rightUpperArmForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%3][1]), osg::Vec3(1,0,0))); - rightDownArmForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%3][2]), osg::Vec3(1,0,0))); + bodyForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%6][0]), osg::Vec3(0,0,1))); + rightUpperArmForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%6][1]), osg::Vec3(1,0,0))); + rightDownArmForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(punch[(int)moveCount%6][2]), osg::Vec3(1,0,0))); moveCount += 1; //if(moveCount <= 0.5){ //bodyForm->setMatrix(osg::Matrixf::rotate(osg::DegreesToRadians(sinVal*10.0), osg::Vec3(0,0,1))); @@ -275,7 +275,7 @@ } void Robot::stop() { - //moveCount = 0; + moveCount = 0; motionTime = 0; velocity = osg::Vec3(0,0,0); angularVelocity = osg::Vec3(0,0,0);