Changeset 608 for code/branches/FICN/src/orxonox/orxonox.cc
- Timestamp:
- Dec 18, 2007, 2:23:12 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/FICN/src/orxonox/orxonox.cc
r605 r608 61 61 #include "../audio/AudioManager.h" 62 62 63 #include "spaceship_steering.h"64 65 #include "particle/ParticleInterface.h"66 67 63 #include "hud/HUD.h" 68 64 … … 84 80 85 81 // put this in seperate Class or solve the problem in another fashion 86 class OrxListener : public FrameListener , public OIS::MouseListener82 class OrxListener : public FrameListener 87 83 { 88 84 public: 89 OrxListener(OIS::Keyboard *keyboard, OIS::Mouse *mouse, audio::AudioManager* auMan, SpaceshipSteering* steering, gameMode mode) 90 : mKeyboard(keyboard), mMouse(mouse) 85 OrxListener(OIS::Keyboard *keyboard, audio::AudioManager* auMan, gameMode mode) 91 86 { 92 93 87 mKeyboard = keyboard; 94 88 mode_=mode; 95 speed = 250;96 loop = 100;97 rotate = 10;98 mouseX = 0;99 mouseY = 0;100 maxMouseX = 0;101 minMouseX = 0;102 moved = false;103 104 steering_ = steering;105 106 steering_->brakeRotate(rotate*10);107 steering_->brakeLoop(loop);108 109 110 mMouse->setEventCallback(this);111 89 auMan_ = auMan; 112 90 } 91 113 92 bool frameStarted(const FrameEvent& evt) 114 93 { 115 116 94 auMan_->update(); 117 95 118 mKeyboard->capture();119 mMouse->capture();120 if (mKeyboard->isKeyDown(OIS::KC_UP) || mKeyboard->isKeyDown(OIS::KC_W))121 steering_->moveForward(speed);122 else123 steering_->moveForward(0);124 if(mKeyboard->isKeyDown(OIS::KC_DOWN) || mKeyboard->isKeyDown(OIS::KC_S))125 steering_->brakeForward(speed);126 else127 steering_->brakeForward(speed/10);128 if (mKeyboard->isKeyDown(OIS::KC_RIGHT) || mKeyboard->isKeyDown(OIS::KC_D))129 steering_->loopRight(loop);130 else131 steering_->loopRight(0);132 if (mKeyboard->isKeyDown(OIS::KC_LEFT) || mKeyboard->isKeyDown(OIS::KC_A))133 steering_->loopLeft(loop);134 else135 steering_->loopLeft(0);136 137 if(moved) {138 if (mouseY<=0)139 steering_->rotateUp(-mouseY*rotate);140 if (mouseY>0)141 steering_->rotateDown(mouseY*rotate);142 if (mouseX>0)143 steering_->rotateRight(mouseX*rotate);144 if (mouseX<=0)145 steering_->rotateLeft(-mouseX*rotate);146 mouseY = 0;147 mouseX = 0;148 moved = false;149 }150 else {151 steering_->rotateUp(0);152 steering_->rotateDown(0);153 steering_->rotateRight(0);154 steering_->rotateLeft(0);155 }156 157 steering_->tick(evt.timeSinceLastFrame);158 159 160 161 // scenemanager->spacehip->tick(evt.timesincelastframe);162 //if(mKeyboard->isKeyDown(OIS::KC_ESCAPE))163 //cout << "maximal MouseX: " << maxMouseX << "\tminMouseX: " << minMouseX << endl;164 96 if(mode_==PRESENTATION) 165 97 server_g->tick(evt.timeSinceLastFrame); 166 98 else if(mode_==CLIENT) 167 99 client_g->tick(evt.timeSinceLastFrame); 100 168 101 usleep(10); 102 103 mKeyboard->capture(); 169 104 return !mKeyboard->isKeyDown(OIS::KC_ESCAPE); 170 105 } 171 106 172 bool mouseMoved(const OIS::MouseEvent &e)173 {174 mouseX += e.state.X.rel;175 mouseY += e.state.Y.rel;176 if(mouseX>maxMouseX) maxMouseX = mouseX;177 if(mouseX<minMouseX) minMouseX = mouseX;178 //cout << "mouseX: " << mouseX << "\tmouseY: " << mouseY << endl;179 moved = true;180 return true;181 }182 183 bool mousePressed(const OIS::MouseEvent &e, OIS::MouseButtonID id) { return true; }184 bool mouseReleased(const OIS::MouseEvent &e, OIS::MouseButtonID id) { return true; }185 186 107 private: 187 108 gameMode mode_; 188 float speed;189 float rotate;190 float loop;191 float mouseY;192 float mouseX;193 float maxMouseX;194 float minMouseX;195 bool moved;196 109 OIS::Keyboard *mKeyboard; 197 OIS::Mouse *mMouse;198 110 audio::AudioManager* auMan_; 199 SpaceshipSteering* steering_;200 111 }; 112 201 113 // init static singleton reference of Orxonox 202 114 Orxonox* Orxonox::singletonRef_ = NULL; … … 207 119 Orxonox::Orxonox() 208 120 { 209 ogre_ = new GraphicsEngine(); 210 dataPath_ = ""; 121 this->ogre_ = new GraphicsEngine(); 122 this->dataPath_ = ""; 123 this->loader_ = 0; 124 this->auMan_ = 0; 125 this->singletonRef_ = 0; 126 this->keyboard_ = 0; 127 this->mouse_ = 0; 128 this->inputManager_ = 0; 129 this->frameListener_ = 0; 130 this->root_ = 0; 211 131 } 212 132 … … 240 160 ar.checkArgument("ip", serverIp_, false); 241 161 if(ar.errorHandling()) die(); 242 243 162 if(mode == std::string("server")) 244 163 { … … 343 262 createRenderWindow(); 344 263 initializeResourceGroups(); 264 setupInputSystem(); 265 Factory::createClassHierarchy(); 345 266 createScene(); 346 267 setupScene(); 347 setupInputSystem();348 Factory::createClassHierarchy();349 268 createFrameListener(); 350 269 try{ … … 472 391 void Orxonox::setupScene() 473 392 { 474 SceneManager *mgr = ogre_->getSceneManager();475 476 477 SceneNode* node = (SceneNode*)mgr->getRootSceneNode()->getChild("OgreHeadNode");393 // SceneManager *mgr = ogre_->getSceneManager(); 394 395 396 // SceneNode* node = (SceneNode*)mgr->getRootSceneNode()->getChild("OgreHeadNode"); 478 397 // SceneNode *node = mgr->getRootSceneNode()->createChildSceneNode("OgreHeadNode", Vector3(0,0,0)); 479 398 480 481 steering_ = new SpaceshipSteering(500, 200, 200, 200);482 steering_->addNode(node);483 399 484 400 /* … … 489 405 e->addToSceneNode(node); 490 406 */ 491 492 particle::ParticleInterface *w = new particle::ParticleInterface(mgr,"schuss","Orxonox/schuss");493 w->particleSystem_->setParameter("local_space","true");494 w->newEmitter();495 w->setDirection(Vector3(0,0,1));496 w->setPositionOfEmitter(0, Vector3(10,10,0));497 w->setPositionOfEmitter(1, Vector3(-10,10,0));498 w->addToSceneNode(node);499 500 particle::ParticleInterface *tt = new particle::ParticleInterface(mgr,"twinthruster","Orxonox/engineglow");501 tt->particleSystem_->setParameter("local_space","true");502 tt->newEmitter();503 tt->setDirection(Vector3(0,0,-1));504 tt->setPositionOfEmitter(0, Vector3(20,-1,-15));505 tt->setPositionOfEmitter(1, Vector3(-20,-1,-15));506 tt->addToSceneNode(node);507 508 407 } 509 408 … … 542 441 543 442 //if(mode_!=CLIENT) // just a hack ------- remove this in future 544 frameListener_ = new OrxListener(keyboard_, mouse_, auMan_, steering_, mode_);443 frameListener_ = new OrxListener(keyboard_, auMan_, mode_); 545 444 ogre_->getRoot()->addFrameListener(frameListener_); 546 445 }
Note: See TracChangeset
for help on using the changeset viewer.