Code: Select all
bool listener :: keyPressed (const OIS::KeyEvent &e)
{
using namespace OIS;
switch(e.key)
{
case KC_1: cast_cmd(0, 0, 1); break;
case KC_2: cast_cmd(0, 1, 1); break;
case KC_3: cast_cmd(0, 2, 1); break;
case KC_L: show_laser=!show_laser; break;
case KC_F1: console->setVisible(!(console->isVisible())); break;
case KC_ESCAPE: stop = true; break;
case KC_UP: case KC_W: translate2.z -= 1.f; break;
case KC_DOWN: case KC_S: translate2.z += 1.f; break;
case KC_LEFT: case KC_A: translate2.x -= 1.f; break;
case KC_RIGHT: case KC_D: translate2.x += 1.f; break;
case KC_PGUP: case KC_Q: case KC_LSHIFT: translate2.y -= 1.f; break;
case KC_PGDOWN: case KC_E: case KC_SPACE: translate2.y += 1.f; break;
default: break;
}
translate = translate2;
translate.normalise();
console -> onKeyPressed(e);
return true;
}
bool listener :: keyReleased (const OIS::KeyEvent &e)
{
using namespace OIS;
switch(e.key)
{
case KC_ESCAPE:
stop = true;
break;
case KC_UP: case KC_W: translate2.z += 1.f; break;
case KC_DOWN: case KC_S: translate2.z -= 1.f; break;
case KC_LEFT: case KC_A: translate2.x += 1.f; break;
case KC_RIGHT: case KC_D: translate2.x -= 1.f; break;
case KC_PGUP: case KC_Q: case KC_LSHIFT: translate2.y += 1.f; break;
case KC_PGDOWN: case KC_E: case KC_SPACE: translate2.y -= 1.f; break;
default:
break;
}
translate = translate2;
translate.normalise();
return true;
}
When I push the key and release it, my cam keeps moving. Some time ago someone solved it on IRC, but I can't really remember. On top of it, to register on the OIS forum there is a stupid question about how many times Nikolai Tesla's computer did reboot, so I ask here.