/**************************************************************************//** * @author Paul Blasi * * @par Description: * Stores the state of the pressed key and does an initial update of the left * player. Also handles the key presses for space, which pauses, escape, which * exits the game, and +/-, which incresses and decreases the speed of the ball * respectively. * * @param[in] key - the key that was pressed * @param[in] x - the x position of the mouse when the key was pressed * @param[in] y - the y position of the mouse when the key was pressed * *****************************************************************************/ void Keyboard(unsigned char key, int x, int y) { KEYSTATE[key] = true; if ((KEYSTATE['w'] || KEYSTATE['W']) && !PAUSED) { LEFT_PLAYER.ChangeYSpeed(PADDLE_INC); } if ((KEYSTATE['a'] || KEYSTATE['A']) && !PAUSED) { LEFT_PLAYER.ChangeXSpeed((-1)*PADDLE_INC); } if ((KEYSTATE['s'] || KEYSTATE['S']) && !PAUSED) { LEFT_PLAYER.ChangeYSpeed(-1 * PADDLE_INC); } if ((KEYSTATE['d'] || KEYSTATE['D']) && !PAUSED) { LEFT_PLAYER.ChangeXSpeed(PADDLE_INC); } if (KEYSTATE['+'] && !PAUSED) { BALL.IncreaseMinVelocity(); } if (KEYSTATE['-'] && !PAUSED) { BALL.DecreaseMinVelocity(); } if (KEYSTATE[' ']) { PAUSED = !PAUSED; if (PAUSED) { glutPostRedisplay(); } else { glutTimerFunc(30, Animate, 0); } } if (KEYSTATE[ESCAPE_KEY]) { glutExit(); } }