Advertisement
JeffBobbo

Untitled

Jun 7th, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. void Player::move()
  2. {
  3.   f32 dT = Clock::getFrameTime(); //ms
  4.   core::vector3df initPosition = me->getPosition();
  5.   core::vector3df moveBy = core::vector3df(0.0, 0.0, 0.0);
  6.   core::vector3df initRotation = me->getRotation();
  7.   core::vector3df turnBy = core::vector3df(0.0, 0.0, 0.0);
  8.   if (event()->keyDown(KEY_KEY_W) && !event()->keyDown(KEY_KEY_S)) // check both keys so we don't try to move both directions
  9.   {
  10.     // fowards
  11.     // calculate a distance to step
  12.     f32 dist = moveSpeed * dT;
  13.     moveBy += core::vector3df(dist / cos(deg2rad(initRotation.Y)), 0.0, dist / sin(deg2rad(initRotation.Y)));
  14.   }
  15.   if (event()->keyDown(KEY_KEY_S) && !event()->keyDown(KEY_KEY_W)) // check both keys so we don't try to move both directions
  16.   {
  17.     // backwards
  18.     f32 dist = -moveSpeed * dT;
  19.     moveBy += core::vector3df(dist / cos(deg2rad(initRotation.Y)), 0.0, dist / sin(deg2rad(initRotation.Y)));
  20.   }
  21.   if (event()->keyDown(KEY_KEY_A) && !event()->keyDown(KEY_KEY_D)) // check both keys so we don't try to move both directions
  22.   {
  23.     // turn left
  24.     f32 howMuch = turnSpeed * dT;
  25.     turnBy += core::vector3df(0.0, rad2deg(howMuch), 0.0);
  26.   }
  27.   if (event()->keyDown(KEY_KEY_D) && !event()->keyDown(KEY_KEY_A)) // check both keys so we don't try to move both directions
  28.   {
  29.     // turn right
  30.     f32 howMuch = -turnSpeed * dT;
  31.     turnBy += core::vector3df(0.0, rad2deg(howMuch), 0.0);
  32.   }
  33.   me->setPosition(initPosition + moveBy); // me is the cube node
  34.   me->setRotation(initRotation + turnBy); // the camera is assigned it's parent at creation in the Player constructor
  35.  
  36.   // move the camera with us
  37.   moveCamera();
  38. }
  39.  
  40. void Player::moveCamera()
  41. {
  42.   if (!camera)
  43.     return;
  44.   if (!me)
  45.     return;
  46.   camera->setPosition(core::vector3df(0.0, 0.0, 0.0));
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement