Exemple #1
0
/**************************************************************************//**
* @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();
    }
}