Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 8724 in orxonox.OLD for trunk/src/world_entities/creatures


Ignore:
Timestamp:
Jun 22, 2006, 3:14:58 PM (18 years ago)
Author:
bensch
Message:

merged the bsp-model-stuff back here

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  
    6363
    6464  this->loadParams(doc.RootElement());
    65   this->toList(OM_GROUP_01);
    6665}
    6766
     
    7776  if (root != NULL)
    7877    this->loadParams(root);
     78}
     79
     80
     81/**
     82 * initializes a MD2Creature
     83 */
     84void 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);
    7991
    8092  //weapons:
     
    8799  cannon->setName("BFG");
    88100
    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);
    95103  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
    109118  this->mouseDirX *= Quaternion( M_PI * 0.75f, Vector(0,1,0));
    110119
     
    116125  cycle = 0.0;
    117126
    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;
    126128  this->velocity = Vector(0.0,0.0,0.0);
    127129
    128 //   GLGuiButton* button = new GLGuiPushButton();
    129 //   button->show();
    130 //   button->setLabel("orxonox");
    131 //   button->setBindNode(this);
    132130
    133131  //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);
    138143  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);
    145144
    146145
     
    165164  this->getWeaponManager().setSlotPosition(5, Vector(-1.5, -.5, -.5));
    166165  this->getWeaponManager().setSlotDirection(5, Quaternion(+M_PI_4*.5-M_PI, Vector(1,0,0)));
    167 //
    168    this->getWeaponManager().setSlotPosition(6, Vector(-1, 0.0, 0));
    169    this->getWeaponManager().setSlotCapability(6, WTYPE_ALLDIRS | WTYPE_DIRECTIONAL);
    170    //
    171 
    172    this->cameraConnNode.addChild(this->getWeaponManager().getFixedTarget());
     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());
    173172  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
    174173
    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
    193178
    194179/**
     
    202187
    203188
     189void 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
     199void MD2Creature::leave()
     200{
     201  dynamic_cast<Element2D*>(this->getWeaponManager().getFixedTarget())->setVisibility( false);
     202  this->detachCamera();
     203}
     204
     205
    204206/**
    205207 *  effect that occurs after the MD2Creature is spawned
    206208*/
    207209void MD2Creature::postSpawn ()
    208 {
    209   //setCollision(new CollisionCluster(1.0, Vector(0,0,0)));
    210 }
     210{}
    211211
    212212/**
     
    234234  if (this->getCurrentPlayer() != NULL)
    235235    WorldEntity::draw();
    236 //  this->cameraConnNode.debugDraw(0);
     236
     237  this->cameraConnNode.debugDraw(0);
    237238}
    238239
     
    254255  this->shiftCoor (move);
    255256
     257
     258  // handle animations differently
    256259  if( this->bJump && likely(this->getModel(0) != NULL))
    257260  {
     
    260263  else if( this->bFire && likely(this->getModel(0) != NULL))
    261264  {
    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);
    263267  }
    264268  else if( fabs(move.len()) > 0.0f && likely(this->getModel(0) != NULL))
    265269  {
    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);
    267272  }
    268273  else if (likely(this->getModel(0) != NULL))
    269274  {
    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);
    271277  }
    272278
    273279
    274280  //orient the MD2Creature in direction of the mouse
    275   this->setAbsDir(mouseDirX);
     281//   this->setAbsDir(mouseDirX);
     282//    this->cameraConnNode.setRelDir(mouseDirY);
     283
    276284  this->cameraConnNode.setRelDir(mouseDirY);
     285  this->setAbsDir(this->mouseDirX);
    277286}
    278287
     
    286295  Vector accel(0.0, 0.0, 0.0);
    287296  /*
    288   Vector rot(0.0, 0.0, 0.0); // wird benötigt für Helicopter
     297  Vector rot(0.0, 0.0, 0.0); // wird ben�igt fr Helicopter
    289298  */
    290299  //float rotVal = 0.0;
     
    292301  /* calculate the direction in which the craft is heading  */
    293302
     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
    294310  if( this->bUp )
    295    {
    296      accel += (this->getAbsDirX())*2;
    297    }
     311  {
     312    accel += (this->getAbsDirX())*2;
     313  }
    298314
    299315  if( this->bDown )
    300    {
    301      accel -= (this->getAbsDirX())*2;
    302    }
     316  {
     317    accel -= (this->getAbsDirX())*2;
     318  }
    303319
    304320  if( this->bLeft/* > -this->getRelCoor().z*2*/)
     
    329345  }
    330346
    331   velocity = accel * 20.0f;
     347  velocity = accel * 40.0f;
    332348  //rot.normalize();
    333349  //this->setRelDirSoft(Quaternion(rotVal, rot), 5);
     
    335351
    336352
    337 
    338353/**
    339354 * @todo switch statement ??
     
    342357{
    343358  Playable::process(event);
    344   if( event.type == SDLK_a)
    345       this->bStrafeL = event.bPressed;
    346   else if( event.type == SDLK_d)
    347       this->bStrafeR = event.bPressed;
    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;
    352367  else if( event.type == SDLK_SPACE)
    353368    this->bJump = event.bPressed;
    354369  else if( event.type == EV_MOUSE_MOTION)
    355370  {
     371    this->bMouseMotion = true;
    356372    this->xMouse = event.xRel;
    357373    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  
    5757    bool                  bStrafeR;           //!< strafe to the rith side
    5858    bool                  bJump;              //!< jump
     59    bool                  bMouseMotion;       //!< mouse motion evet
    5960
    6061    PNode                 cameraConnNode;     //!< The Node the camera is connected to.
Note: See TracChangeset for help on using the changeset viewer.