Original Post
How would I add a sprinting ability when Right Shift is held to the following code? Thanks for any help!
I tried this - but it didn't do anything. help please.
void InputController::injectKeyboardState(OIS::Keyboard* mKeyboard)
{
//camera
float walk = 0,strafe = 0, up = 0, sprint = 0;
if (mKeyboard->isKeyDown(OIS::KC_A))
{
strafe = -1;
}
else if (mKeyboard->isKeyDown(OIS::KC_D))
{
strafe = 1;
}
if (mKeyboard->isKeyDown(OIS::KC_W))
{
walk = -1;
}
else if (mKeyboard->isKeyDown(OIS::KC_S))
{
walk = 1;
}
if (mKeyboard->isKeyDown(OIS::KC_PGUP))
{
up = 1;
}
else if (mKeyboard->isKeyDown(OIS::KC_PGDOWN))
{
up = -1;
}
GST->GetCurrentCam()->UpdateLocation(walk, strafe, up);
//player
walk = 0, strafe = 0, sprint = 0;
if (mKeyboard->isKeyDown(OIS::KC_UP))
{
walk = 1;
}
else if (mKeyboard->isKeyDown(OIS::KC_DOWN))
{
walk = -1;
}
if (mKeyboard->isKeyDown(OIS::KC_LEFT))
{
strafe = 1;
}
else if (mKeyboard->isKeyDown(OIS::KC_RIGHT))
{
strafe = -1;
}
if (walk != 0 || strafe != 0)
{
Quaternion q = TPCAM->GetRotation().Inverse();
Ogre::Vector3 send(walk,0,strafe);
send = q * send;
PLAYER->orderMove(send.x,send.z);
}
}I tried this - but it didn't do anything. help please.
void InputController::injectKeyboardState(OIS::Keyboard* mKeyboard)
{
//camera
float walk = 0,strafe = 0, up = 0, sprint = 0;
if (mKeyboard->isKeyDown(OIS::KC_A))
{
strafe = -1;
}
else if (mKeyboard->isKeyDown(OIS::KC_D))
{
strafe = 1;
}
if (mKeyboard->isKeyDown(OIS::KC_W))
{
walk = -1;
}
else if (mKeyboard->isKeyDown(OIS::KC_S))
{
walk = 1;
}
if (mKeyboard->isKeyDown(OIS::KC_PGUP))
{
up = 1;
}
else if (mKeyboard->isKeyDown(OIS::KC_PGDOWN))
{
up = -1;
}
GST->GetCurrentCam()->UpdateLocation(walk, strafe, up);
//player
walk = 0, strafe = 0, sprint = 0;
if (mKeyboard->isKeyDown(OIS::KC_UP))
{
if (mKeyboard->isKeyDown(OIS::KC_RSHIFT)) {
sprint = 1;
walk = sprint + 1;
}
else {walk = 1;}
}
else if (mKeyboard->isKeyDown(OIS::KC_DOWN))
{
if (mKeyboard->isKeyDown(OIS::KC_RSHIFT))
{
sprint = -1;
walk = sprint -1;
}
else {walk = -1;}
}
if (mKeyboard->isKeyDown(OIS::KC_LEFT))
{
if (mKeyboard->isKeyDown(OIS::KC_RSHIFT)) {
sprint = 1;
strafe = sprint + 1;
}
else { strafe = 1;}
}
else if (mKeyboard->isKeyDown(OIS::KC_RIGHT))
{
if (mKeyboard->isKeyDown(OIS::KC_RSHIFT)) {
sprint = -1;
strafe = sprint -1;
}
else { strafe = -1; }
}
if (walk != 0 || strafe != 0)
{
Quaternion q = TPCAM->GetRotation().Inverse();
Ogre::Vector3 send(walk,0,strafe);
send = q * send;
PLAYER->orderMove(send.x,send.z);
}
}