Changeset 8724 in orxonox.OLD for trunk/src/world_entities/creatures
- Timestamp:
- Jun 22, 2006, 3:14:58 PM (19 years ago)
- Location:
- trunk/src/world_entities/creatures
- Files:
-
- 2 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/world_entities/creatures/md2_creature.cc
r8490 r8724 63 63 64 64 this->loadParams(doc.RootElement()); 65 this->toList(OM_GROUP_01);66 65 } 67 66 … … 77 76 if (root != NULL) 78 77 this->loadParams(root); 78 } 79 80 81 /** 82 * initializes a MD2Creature 83 */ 84 void MD2Creature::init() 85 { 86 PRINTF(4)("MD2CREATURE INIT\n"); 87 // this->setRelDir(Quaternion(M_PI, Vector(1,0,0))); 88 this->setClassID(CL_MD2_CREATURE, "MD2Creature"); 89 90 this->toList(OM_GROUP_01); 79 91 80 92 //weapons: … … 87 99 cannon->setName("BFG"); 88 100 89 this->getWeaponManager().addWeapon(wpLeft, 1, 0); 90 this->getWeaponManager().addWeapon(wpRight,1 ,1); 91 // this->getWeaponManager().addWeapon(cannon, 0, 6); 92 93 //this->getWeaponManager().addWeapon(turret, 3, 0); 94 101 this->addWeapon(wpLeft, 1, 0); 102 this->addWeapon(wpRight,1 ,1); 95 103 this->getWeaponManager().changeWeaponConfig(0); 96 } 97 98 99 /** 100 * initializes a MD2Creature 101 */ 102 void MD2Creature::init() 103 { 104 // this->setRelDir(Quaternion(M_PI, Vector(1,0,0))); 105 this->setClassID(CL_MD2_CREATURE, "MD2Creature"); 106 107 PRINTF(4)("MD2CREATURE INIT\n"); 108 104 105 106 // pnode camera issue 107 this->cameraConnNode.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT); 108 this->cameraConnNode.addNodeFlags(PNODE_PROHIBIT_CHILD_DELETE); 109 this->cameraConnNode.setName("CameraConnectorNode"); 110 this->addChild(&this->cameraConnNode); 111 this->cameraConnNode.addChild(State::getCameraTargetNode()); 112 this->cameraConnNode.addChild(State::getCameraNode()); 113 State::getCameraTargetNode()->setRelCoor(10,0,0); 114 115 116 117 // control initialisation 109 118 this->mouseDirX *= Quaternion( M_PI * 0.75f, Vector(0,1,0)); 110 119 … … 116 125 cycle = 0.0; 117 126 118 this->cameraConnNode.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT); 119 this->cameraConnNode.setName("CameraConnectorNode"); 120 this->addChild(&this->cameraConnNode); 121 this->cameraConnNode.addChild(State::getCameraTargetNode()); 122 this->cameraConnNode.addChild(State::getCameraNode()); 123 State::getCameraTargetNode()->setRelCoor(10,0,0); 124 125 travelSpeed = 15.0; 127 travelSpeed =300.0; 126 128 this->velocity = Vector(0.0,0.0,0.0); 127 129 128 // GLGuiButton* button = new GLGuiPushButton();129 // button->show();130 // button->setLabel("orxonox");131 // button->setBindNode(this);132 130 133 131 //add events to the eventlist 134 this->registerEvent(SDLK_w); 135 this->registerEvent(SDLK_s); 136 this->registerEvent(SDLK_a); 137 this->registerEvent(SDLK_d); 132 //add events to the eventlist 133 registerEvent(KeyMapper::PEV_FORWARD); 134 registerEvent(KeyMapper::PEV_BACKWARD); 135 registerEvent(KeyMapper::PEV_LEFT); 136 registerEvent(KeyMapper::PEV_RIGHT); 137 registerEvent(KeyMapper::PEV_UP); 138 registerEvent(KeyMapper::PEV_DOWN); 139 registerEvent(KeyMapper::PEV_FIRE1); 140 registerEvent(KeyMapper::PEV_NEXT_WEAPON); 141 registerEvent(KeyMapper::PEV_PREVIOUS_WEAPON); 142 registerEvent(EV_MOUSE_MOTION); 138 143 this->registerEvent(SDLK_SPACE); 139 this->registerEvent(SDLK_q);140 this->registerEvent(SDLK_e);141 this->registerEvent(KeyMapper::PEV_FIRE1);142 this->registerEvent(KeyMapper::PEV_NEXT_WEAPON);143 this->registerEvent(KeyMapper::PEV_PREVIOUS_WEAPON);144 this->registerEvent(EV_MOUSE_MOTION);145 144 146 145 … … 165 164 this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5)); 166 165 this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0))); 167 //168 169 170 171 172 166 // 167 this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0)); 168 this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 169 // 170 171 this->cameraConnNode.addChild(this->getWeaponManager().getFixedTarget()); 173 172 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 174 173 175 this->getWeaponManager().getFixedTarget()->setRelCoor(10,0,0); 176 177 } 178 179 180 void MD2Creature::enter() 181 { 182 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true); 183 this->attachCamera(); 184 185 } 186 187 void MD2Creature::leave() 188 { 189 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 190 191 192 } 174 this->getWeaponManager().getFixedTarget()->setRelCoor(0,0,0); 175 176 } 177 193 178 194 179 /** … … 202 187 203 188 189 void MD2Creature::enter() 190 { 191 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true); 192 193 State::getCameraNode()->setParent(&this->cameraConnNode); 194 State::getCameraNode()->setRelCoor(0, 0,0); 195 State::getCameraTargetNode()->setParentSoft(&this->cameraConnNode); 196 197 } 198 199 void MD2Creature::leave() 200 { 201 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 202 this->detachCamera(); 203 } 204 205 204 206 /** 205 207 * effect that occurs after the MD2Creature is spawned 206 208 */ 207 209 void MD2Creature::postSpawn () 208 { 209 //setCollision(new CollisionCluster(1.0, Vector(0,0,0))); 210 } 210 {} 211 211 212 212 /** … … 234 234 if (this->getCurrentPlayer() != NULL) 235 235 WorldEntity::draw(); 236 // this->cameraConnNode.debugDraw(0); 236 237 this->cameraConnNode.debugDraw(0); 237 238 } 238 239 … … 254 255 this->shiftCoor (move); 255 256 257 258 // handle animations differently 256 259 if( this->bJump && likely(this->getModel(0) != NULL)) 257 260 { … … 260 263 else if( this->bFire && likely(this->getModel(0) != NULL)) 261 264 { 262 if( ((MD2Model*)this->getModel(0))->getAnim() != ATTACK) ((MD2Model*)this->getModel(0))->setAnimation(ATTACK); 265 if( ((MD2Model*)this->getModel(0))->getAnimation() != ATTACK) 266 ((MD2Model*)this->getModel(0))->setAnimation(ATTACK); 263 267 } 264 268 else if( fabs(move.len()) > 0.0f && likely(this->getModel(0) != NULL)) 265 269 { 266 if( ((MD2Model*)this->getModel(0))->getAnim() != RUN) ((MD2Model*)this->getModel(0))->setAnimation(RUN); 270 if( ((MD2Model*)this->getModel(0))->getAnimation() != RUN) 271 ((MD2Model*)this->getModel(0))->setAnimation(RUN); 267 272 } 268 273 else if (likely(this->getModel(0) != NULL)) 269 274 { 270 if( ((MD2Model*)this->getModel(0))->getAnim() != STAND) ((MD2Model*)this->getModel(0))->setAnimation(STAND); 275 if( ((MD2Model*)this->getModel(0))->getAnimation() != STAND) 276 ((MD2Model*)this->getModel(0))->setAnimation(STAND); 271 277 } 272 278 273 279 274 280 //orient the MD2Creature in direction of the mouse 275 this->setAbsDir(mouseDirX); 281 // this->setAbsDir(mouseDirX); 282 // this->cameraConnNode.setRelDir(mouseDirY); 283 276 284 this->cameraConnNode.setRelDir(mouseDirY); 285 this->setAbsDir(this->mouseDirX); 277 286 } 278 287 … … 286 295 Vector accel(0.0, 0.0, 0.0); 287 296 /* 288 Vector rot(0.0, 0.0, 0.0); // wird ben ötigt für Helicopter297 Vector rot(0.0, 0.0, 0.0); // wird ben�igt fr Helicopter 289 298 */ 290 299 //float rotVal = 0.0; … … 292 301 /* calculate the direction in which the craft is heading */ 293 302 303 if( bMouseMotion) 304 { 305 this->mouseDirX *= Quaternion(-M_PI / 4.0f * this->xMouse*mouseSensitivity, Vector(0,1,0)); 306 this->mouseDirY *= Quaternion(-M_PI / 4.0f * this->yMouse*mouseSensitivity, Vector(0,0,1)); 307 this->bMouseMotion = false; 308 } 309 294 310 if( this->bUp ) 295 296 297 311 { 312 accel += (this->getAbsDirX())*2; 313 } 298 314 299 315 if( this->bDown ) 300 301 302 316 { 317 accel -= (this->getAbsDirX())*2; 318 } 303 319 304 320 if( this->bLeft/* > -this->getRelCoor().z*2*/) … … 329 345 } 330 346 331 velocity = accel * 20.0f;347 velocity = accel * 40.0f; 332 348 //rot.normalize(); 333 349 //this->setRelDirSoft(Quaternion(rotVal, rot), 5); … … 335 351 336 352 337 338 353 /** 339 354 * @todo switch statement ?? … … 342 357 { 343 358 Playable::process(event); 344 if( event.type == SDLK_a)345 346 else if( event.type == SDLK_d)347 348 else if( event.type == SDLK_w)349 this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);350 else if( event.type == SDLK_s)351 this->bDown = event.bPressed; //this->shiftCoor(0,-.1,0);359 if( event.type == KeyMapper::PEV_LEFT) 360 this->bStrafeL = event.bPressed; 361 else if( event.type == KeyMapper::PEV_RIGHT) 362 this->bStrafeR = event.bPressed; 363 else if( event.type == KeyMapper::PEV_FORWARD) 364 this->bUp = event.bPressed; 365 else if( event.type == KeyMapper::PEV_BACKWARD) 366 this->bDown = event.bPressed; 352 367 else if( event.type == SDLK_SPACE) 353 368 this->bJump = event.bPressed; 354 369 else if( event.type == EV_MOUSE_MOTION) 355 370 { 371 this->bMouseMotion = true; 356 372 this->xMouse = event.xRel; 357 373 this->yMouse = event.yRel; 358 this->mouseDirX *= Quaternion(-M_PI/4*this->xMouse*mouseSensitivity, Vector(0,1,0)); 359 this->mouseDirY *= Quaternion(-M_PI/4*this->yMouse*mouseSensitivity, Vector(0,0,1)); 360 // if( xMouse*xMouse < 0.9) 361 // this->setAbsDir(mouseDir); 362 } 363 } 374 } 375 } -
trunk/src/world_entities/creatures/md2_creature.h
r7346 r8724 57 57 bool bStrafeR; //!< strafe to the rith side 58 58 bool bJump; //!< jump 59 bool bMouseMotion; //!< mouse motion evet 59 60 60 61 PNode cameraConnNode; //!< The Node the camera is connected to.
Note: See TracChangeset
for help on using the changeset viewer.