Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 7, 2005, 3:43:01 PM (18 years ago)
Author:
bknecht
Message:

Mousecontrol implemented! Mousesensitivity implemented! Mouse is grabbed! Control works fine

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/spaceshipcontrol/src/world_entities/space_ships/space_ship.cc

    r5928 r5964  
    3131#include "key_mapper.h"
    3232#include "event_handler.h"
     33
     34#include "graphics_engine.h"
    3335
    3436using namespace std;
     
    110112  PRINTF(4)("SPACESHIP INIT\n");
    111113
    112 
    113   bUp = bDown = bLeft = bRight = bAscend = bDescend = false;
     114  EventHandler::getInstance()->grabEvents(true);
     115
     116  bUp = bDown = bLeft = bRight = bAscend = bDescend = bRollL = bRollR = false;
    114117  bFire = false;
     118  xMouse = yMouse = 0;
     119  mouseSensitivity = 0.001;
     120 
     121 
     122 
    115123
    116124  travelSpeed = 15.0;
     
    124132
    125133  //add events to the eventlist
    126   registerEvent(KeyMapper::PEV_UP);
    127   registerEvent(KeyMapper::PEV_DOWN);
    128   registerEvent(KeyMapper::PEV_LEFT);
    129   registerEvent(KeyMapper::PEV_RIGHT);
     134  registerEvent(SDLK_w);
     135  registerEvent(SDLK_s);
     136  registerEvent(SDLK_a);
     137  registerEvent(SDLK_d);
     138  registerEvent(SDLK_q);
     139  registerEvent(SDLK_e);
    130140  registerEvent(KeyMapper::PEV_FIRE1);
    131141  registerEvent(KeyMapper::PEV_NEXT_WEAPON);
     
    262272 
    263273  // this is the air friction (necessary for a smooth control)
    264   if(velocity.len() != 0) velocity -= velocity*0.005;
    265  
    266   this->shiftDir(Quaternion(-M_PI/4*xMouse*time/5, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*time/5, Vector(0,0,1)));
     274  if(velocity.len() != 0) velocity -= velocity*0.01;
     275 
     276  //SDL_WarpMouse(GraphicsEngine::getInstance()->getResolutionX()/2, GraphicsEngine::getInstance()->getResolutionY()/2);
    267277
    268278  this->shiftCoor (move);
     
    288298   {
    289299     //this->shiftCoor(this->getAbsDirX());
    290       accel += this->getAbsDirX();
     300      accel += (this->getAbsDirX())*2;
    291301   }
    292302
     
    294304   {
    295305     //this->shiftCoor((this->getAbsDirX())*-1);
    296      accel -= this->getAbsDirX();
     306     accel -= (this->getAbsDirX())*2;
    297307   }
    298308
     
    308318  {
    309319    this->shiftDir(Quaternion(-time, Vector(0,1,0)));
     320
     321    //    accel += rightDirection;
     322    //velocityDir.normalize();
     323    //rot += Vector(1,0,0);
     324    //rotVal += .4;
     325  }
     326 
     327  if( this->bRollL /* > -this->getRelCoor().z*2*/)
     328  {
     329    this->shiftDir(Quaternion(-time, Vector(1,0,0)));
     330//    accel -= rightDirection;
     331    //velocityDir.normalize();
     332    //rot +=Vector(1,0,0);
     333    //rotVal -= .4;
     334  }
     335  if( this->bRollR /* > this->getRelCoor().z*2*/)
     336  {
     337    this->shiftDir(Quaternion(time, Vector(1,0,0)));
    310338
    311339    //    accel += rightDirection;
     
    354382void SpaceShip::process(const Event &event)
    355383{
    356   if( event.type == KeyMapper::PEV_UP)
    357       this->bUp = event.bPressed;
    358   else if( event.type == KeyMapper::PEV_DOWN)
    359       this->bDown = event.bPressed;
    360   else if( event.type == KeyMapper::PEV_RIGHT)
    361       this->bRight= event.bPressed;
    362   else if( event.type == KeyMapper::PEV_LEFT)
    363       this->bLeft = event.bPressed;
     384 
     385 
     386  if( event.type == SDLK_a)
     387      this->bRollL = event.bPressed;
     388  else if( event.type == SDLK_d)
     389      this->bRollR = event.bPressed;
    364390  else if( event.type == KeyMapper::PEV_FIRE1)
    365391      this->bFire = event.bPressed;
     
    369395    this->getWeaponManager()->previousWeaponConfig();
    370396
    371   else if( event.type == SDLK_PAGEUP)
    372     this->bAscend = event.bPressed; //this->shiftCoor(0,.1,0);
    373   else if( event.type == SDLK_PAGEDOWN)
    374     this->bDescend = event.bPressed; //this->shiftCoor(0,-.1,0);
     397  else if( event.type == SDLK_w)
     398    this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);
     399  else if( event.type == SDLK_s)
     400    this->bDown = event.bPressed; //this->shiftCoor(0,-.1,0);
    375401  else if( event.type == EV_MOUSE_MOTION)
    376402  {
    377403    this->xMouse = event.xRel;
    378404    this->yMouse = event.yRel;
     405    this->shiftDir(Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0))*Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1)));
    379406  }
    380407}
Note: See TracChangeset for help on using the changeset viewer.