/**************************************************************************//** * @author Paul Blasi * * @par Description: * The action the right paddle is to take when it collides with any wall. Keeps * the paddles from travelling through walls. * * @param[in] col - the type of collision that occurred * *****************************************************************************/ void RightCollideWithWall(CollisionTypeEnum col) { if (col == RIGHT_COLLISION) { if (RIGHT_PLAYER.X_Vel() > 0) { RIGHT_PLAYER.ResetXSpeed(); } } if (col == LEFT_COLLISION) { if (RIGHT_PLAYER.X_Vel() < 0) { RIGHT_PLAYER.ResetXSpeed(); } } if (col == TOP_COLLISION) { if (RIGHT_PLAYER.Y_Vel() > 0) { RIGHT_PLAYER.ResetYSpeed(); } } if (col == BOTTOM_COLLISION) { if (RIGHT_PLAYER.Y_Vel() < 0) { RIGHT_PLAYER.ResetYSpeed(); } } }
/**************************************************************************//** * @author Paul Blasi * * @par Description: * Updates each of the paddles x and y speeds every 1/3rd of a second * *****************************************************************************/ void UpdatePaddles() { if ((KEYSTATE['w'] || KEYSTATE['W']) && !PAUSED) { LEFT_PLAYER.ChangeYSpeed(PADDLE_INC); } else if (LEFT_PLAYER.Y_Vel() > 0) { if (LEFT_PLAYER.Y_Vel() < PADDLE_DEC) { LEFT_PLAYER.ResetYSpeed(); } else { LEFT_PLAYER.ChangeYSpeed(-1 * PADDLE_DEC); } } if ((KEYSTATE['a'] || KEYSTATE['A']) && !PAUSED) { LEFT_PLAYER.ChangeXSpeed((-1)*PADDLE_INC); } else if (LEFT_PLAYER.X_Vel() < 0) { if (LEFT_PLAYER.X_Vel() > -1 * PADDLE_DEC) { LEFT_PLAYER.ResetXSpeed(); } else { LEFT_PLAYER.ChangeXSpeed(PADDLE_DEC); } } if ((KEYSTATE['s'] || KEYSTATE['S']) && !PAUSED) { LEFT_PLAYER.ChangeYSpeed(-1 * PADDLE_INC); } else if (LEFT_PLAYER.Y_Vel() < 0) { if (LEFT_PLAYER.Y_Vel() > -1 * PADDLE_DEC) { LEFT_PLAYER.ResetYSpeed(); } else { LEFT_PLAYER.ChangeYSpeed(PADDLE_DEC); } } if ((KEYSTATE['d'] || KEYSTATE['D']) && !PAUSED) { LEFT_PLAYER.ChangeXSpeed(PADDLE_INC); } else if (LEFT_PLAYER.X_Vel() > 0) { if (LEFT_PLAYER.X_Vel() < PADDLE_DEC) { LEFT_PLAYER.ResetXSpeed(); } else { LEFT_PLAYER.ChangeXSpeed(-1 * PADDLE_DEC); } } if (SPECKEYSTATE[GLUT_KEY_LEFT] && !PAUSED) { RIGHT_PLAYER.ChangeXSpeed(-1 * PADDLE_INC); } else if (RIGHT_PLAYER.X_Vel() < 0) { if (RIGHT_PLAYER.X_Vel() > -1 * PADDLE_DEC) { RIGHT_PLAYER.ResetXSpeed(); } else { RIGHT_PLAYER.ChangeXSpeed(PADDLE_DEC); } } if (SPECKEYSTATE[GLUT_KEY_RIGHT] && !PAUSED) { RIGHT_PLAYER.ChangeXSpeed(PADDLE_INC); } else if (RIGHT_PLAYER.X_Vel() > 0) { if (RIGHT_PLAYER.X_Vel() < PADDLE_DEC) { RIGHT_PLAYER.ResetXSpeed(); } else { RIGHT_PLAYER.ChangeXSpeed(-1 * PADDLE_DEC); } } if (SPECKEYSTATE[GLUT_KEY_UP] && !PAUSED) { RIGHT_PLAYER.ChangeYSpeed(PADDLE_INC); } else if (RIGHT_PLAYER.Y_Vel() > 0) { if (RIGHT_PLAYER.Y_Vel() < PADDLE_DEC) { RIGHT_PLAYER.ResetYSpeed(); } else { RIGHT_PLAYER.ChangeYSpeed(-1 * PADDLE_DEC); } } if (SPECKEYSTATE[GLUT_KEY_DOWN] && !PAUSED) { RIGHT_PLAYER.ChangeYSpeed(-1 * PADDLE_INC); } else if (RIGHT_PLAYER.Y_Vel() < 0) { if (RIGHT_PLAYER.Y_Vel() > -1 * PADDLE_DEC) { RIGHT_PLAYER.ResetYSpeed(); } else { RIGHT_PLAYER.ChangeYSpeed(PADDLE_DEC); } } }