Code: Select all
bool CEventReceiver::OnEvent(SEvent Event)
{
if (Event.EventType == EET_KEY_INPUT_EVENT)
{
if (Event.KeyInput.Key == KEY_UP)
p2Paddle->setPosition(p2Paddle->getPosition() + vector3df(0.0f, 0.0f, 1.0f));
if (Event.KeyInput.Key == KEY_DOWN)
p2Paddle->setPosition(p2Paddle->getPosition() + vector3df(0.0f, 0.0f, -1.0f));
if (Event.KeyInput.Key == KEY_KEY_W)
p1Paddle->setPosition(p1Paddle->getPosition() + vector3df(0.0f, 0.0f, 1.0f));
if (Event.KeyInput.Key == KEY_KEY_S)
p1Paddle->setPosition(p1Paddle->getPosition() + vector3df(0.0f, 0.0f, -1.0f));
switch (Event.KeyInput.Key)
{
// Did the user press the "Esc" button?
case 27:
quit = true;
break;
}
}
return true;
}
1. When you press and hold a key, let's say UP, the player 2 paddle goes up a tiny bit, and pauses. Then, it continues going up. It's the same situation if I was typing in a text editor like Word or NotePad. When you press a key, there is a pause before that key is repeated.
2. Even though I tried using if statements instead of a switch statement for the movement keys, only one would be processed.
Please help me.