Changeset 8504 in orxonox.OLD for branches/bsp_model/src/world_entities
- Timestamp:
- Jun 15, 2006, 10:39:55 PM (18 years ago)
- Location:
- branches/bsp_model/src/world_entities/creatures
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/bsp_model/src/world_entities/creatures/md2_creature.cc
r8490 r8504 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 MD2Creature101 */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 // control initialisation 109 117 this->mouseDirX *= Quaternion( M_PI * 0.75f, Vector(0,1,0)); 110 118 … … 116 124 cycle = 0.0; 117 125 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 126 travelSpeed = 15.0; 126 127 this->velocity = Vector(0.0,0.0,0.0); 127 128 128 // GLGuiButton* button = new GLGuiPushButton();129 // button->show();130 // button->setLabel("orxonox");131 // button->setBindNode(this);132 129 133 130 //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); 131 //add events to the eventlist 132 registerEvent(KeyMapper::PEV_FORWARD); 133 registerEvent(KeyMapper::PEV_BACKWARD); 134 registerEvent(KeyMapper::PEV_LEFT); 135 registerEvent(KeyMapper::PEV_RIGHT); 136 registerEvent(KeyMapper::PEV_UP); 137 registerEvent(KeyMapper::PEV_DOWN); 138 registerEvent(KeyMapper::PEV_FIRE1); 139 registerEvent(KeyMapper::PEV_NEXT_WEAPON); 140 registerEvent(KeyMapper::PEV_PREVIOUS_WEAPON); 141 registerEvent(EV_MOUSE_MOTION); 138 142 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 143 146 144 … … 165 163 this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5)); 166 164 this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0))); 167 //168 169 170 171 172 165 // 166 this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0)); 167 this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL); 168 // 169 170 this->cameraConnNode.addChild(this->getWeaponManager().getFixedTarget()); 173 171 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 174 172 … … 177 175 } 178 176 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 }193 177 194 178 /** … … 202 186 203 187 188 void MD2Creature::enter() 189 { 190 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( true); 191 192 State::getCameraNode()->setParentSoft(&this->cameraConnNode); 193 State::getCameraNode()->setRelCoorSoft(-10, 0,0); 194 State::getCameraTargetNode()->setParentSoft(&this->cameraConnNode); 195 196 } 197 198 void MD2Creature::leave() 199 { 200 dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false); 201 this->detachCamera(); 202 } 203 204 204 205 /** 205 206 * effect that occurs after the MD2Creature is spawned 206 207 */ 207 208 void MD2Creature::postSpawn () 208 { 209 //setCollision(new CollisionCluster(1.0, Vector(0,0,0))); 210 } 209 {} 211 210 212 211 /** … … 234 233 if (this->getCurrentPlayer() != NULL) 235 234 WorldEntity::draw(); 236 // this->cameraConnNode.debugDraw(0); 235 236 this->cameraConnNode.debugDraw(0); 237 237 } 238 238 … … 254 254 this->shiftCoor (move); 255 255 256 257 // handle animations differently 256 258 if( this->bJump && likely(this->getModel(0) != NULL)) 257 259 { … … 260 262 else if( this->bFire && likely(this->getModel(0) != NULL)) 261 263 { 262 if( ((MD2Model*)this->getModel(0))->getAnim() != ATTACK) ((MD2Model*)this->getModel(0))->setAnimation(ATTACK); 264 if( ((MD2Model*)this->getModel(0))->getAnim() != ATTACK) 265 ((MD2Model*)this->getModel(0))->setAnimation(ATTACK); 263 266 } 264 267 else if( fabs(move.len()) > 0.0f && likely(this->getModel(0) != NULL)) 265 268 { 266 if( ((MD2Model*)this->getModel(0))->getAnim() != RUN) ((MD2Model*)this->getModel(0))->setAnimation(RUN); 269 if( ((MD2Model*)this->getModel(0))->getAnim() != RUN) 270 ((MD2Model*)this->getModel(0))->setAnimation(RUN); 267 271 } 268 272 else if (likely(this->getModel(0) != NULL)) 269 273 { 270 if( ((MD2Model*)this->getModel(0))->getAnim() != STAND) ((MD2Model*)this->getModel(0))->setAnimation(STAND); 274 if( ((MD2Model*)this->getModel(0))->getAnim() != STAND) 275 ((MD2Model*)this->getModel(0))->setAnimation(STAND); 271 276 } 272 277 273 278 274 279 //orient the MD2Creature in direction of the mouse 275 this->setAbsDir(mouseDirX); 276 this->cameraConnNode.setRelDir(mouseDirY); 280 // this->setAbsDir(mouseDirX); 281 // this->cameraConnNode.setRelDir(mouseDirY); 282 283 this->setAbsDir(this->mouseDirX); 277 284 } 278 285 … … 292 299 /* calculate the direction in which the craft is heading */ 293 300 301 if( bMouseMotion) 302 { 303 PRINTF(0)("motion\n"); 304 this->mouseDirX *= Quaternion(-M_PI / 4.0f * this->xMouse*mouseSensitivity, Vector(0,1,0)); 305 this->mouseDirY *= Quaternion(-M_PI / 4.0f * this->yMouse*mouseSensitivity, Vector(0,0,1)); 306 this->bMouseMotion = false; 307 } 308 294 309 if( this->bUp ) 295 296 297 310 { 311 accel += (this->getAbsDirX())*2; 312 } 298 313 299 314 if( this->bDown ) 300 301 302 315 { 316 accel -= (this->getAbsDirX())*2; 317 } 303 318 304 319 if( this->bLeft/* > -this->getRelCoor().z*2*/) … … 335 350 336 351 337 338 352 /** 339 353 * @todo switch statement ?? … … 342 356 { 343 357 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);358 if( event.type == KeyMapper::PEV_LEFT) 359 this->bStrafeL = event.bPressed; 360 else if( event.type == KeyMapper::PEV_RIGHT) 361 this->bStrafeR = event.bPressed; 362 else if( event.type == KeyMapper::PEV_FORWARD) 363 this->bUp = event.bPressed; 364 else if( event.type == KeyMapper::PEV_BACKWARD) 365 this->bDown = event.bPressed; 352 366 else if( event.type == SDLK_SPACE) 353 367 this->bJump = event.bPressed; 354 368 else if( event.type == EV_MOUSE_MOTION) 355 369 { 370 this->bMouseMotion = true; 356 371 this->xMouse = event.xRel; 357 372 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 } 373 } 374 } -
branches/bsp_model/src/world_entities/creatures/md2_creature.h
r7346 r8504 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.