- ///////////////////////////////////////////////////////////////////////////////
- /// File: CBall.cpp
- /// Purpose: Implementation of CBall Class
- ///////////////////////////////////////////////////////////////////////////////
- /// Configuation Management
- ///
- /// Who When Description
- /// ===========================================================================
- /// R. Walter 28-Dec-2003 Initial Version/Release
- ///
- ///////////////////////////////////////////////////////////////////////////////
- /// Copyright 2003: Robert Walter All rights reserved
- ///////////////////////////////////////////////////////////////////////////////
- /// HEADER FILE INCLUDES //////////////////////////////////////////////////////
- #include "CBall.h"
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: CBall --> default constructor
- /// Purpose: Initialize member variables
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- CBall::CBall()
- {
- return;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: ~CBricks --> default destructor
- /// Purpose: Deallocate member variables
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- CBall::~CBall()
- {
- return;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetBallRect
- /// Purpose: Retrieve the rectangle of the current ball position
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: RECT structure of current ball location
- ///////////////////////////////////////////////////////////////////////////////
- RECT CBall::GetBallRect()
- {
- RECT l_ball_rect;
- l_ball_rect.top = m_y_pos;
- l_ball_rect.left = m_x_pos;
- l_ball_rect.right = m_x_pos + BALL_WIDTH;
- l_ball_rect.bottom = m_y_pos + BALL_HEIGHT;
- return(l_ball_rect);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetCaptiveRect
- /// Purpose: Retrieve the current captive rectangle of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: captive rectangle of the ball (member variable m_captive_rect)
- ///////////////////////////////////////////////////////////////////////////////
- RECT CBall::GetCaptiveRect()
- {
- return(m_captive_rect);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetState
- /// Purpose: Retrieve the current state of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: current state of the ball (member variable m_state)
- ///////////////////////////////////////////////////////////////////////////////
- EBallState CBall::GetState()
- {
- return(m_state);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetVelMultiplier
- /// Purpose: Retrieve the current ball brick 'bounce' velocity
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: the current velocity multiplier (member variable m_vel_multi)
- ///////////////////////////////////////////////////////////////////////////////
- int CBall::GetVelMultiplier()
- {
- return m_vel_multi;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetXPos
- /// Purpose: Retrieve the current X position (in pixels) of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: integer of current X position (member variable m_x_pos)
- ///////////////////////////////////////////////////////////////////////////////
- int CBall::GetXPos()
- {
- return(m_x_pos);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetYPos
- /// Purpose: Retrieve the current Y position (in pixels) of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: integer of current Y position (member variable m_y_pos)
- ///////////////////////////////////////////////////////////////////////////////
- int CBall::GetYPos()
- {
- return(m_y_pos);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetXVel
- /// Purpose: Retrieve the current X velocity (in pixels) of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: integer of current X velocity (member variable m_x_vel)
- ///////////////////////////////////////////////////////////////////////////////
- int CBall::GetXVel()
- {
- return(m_x_vel);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: GetYVel
- /// Purpose: Retrieve the current Y velocity (in pixels) of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: integer of current Y velocity (member variable m_y_vel)
- ///////////////////////////////////////////////////////////////////////////////
- int CBall::GetYVel()
- {
- return(m_y_vel);
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: ReflectX
- /// Purpose: 'Bounce' the ball in the X direction
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::ReflectX()
- {
- m_x_vel = -1 * m_x_vel;
- m_y_pos += m_y_vel;
- m_x_pos += m_x_vel;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: ReflectY
- /// Purpose: 'Bounce' the ball in the Y direction
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: nothing
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::ReflectY()
- {
- m_y_vel = -1 * m_y_vel;
- m_y_pos += m_y_vel;
- m_x_pos += m_x_vel;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetCaptiveRect
- /// Purpose: Define the rectangle that holds the ball (only when state == CAPTIVE)
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new captive rectangle
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetCaptiveRect(const RECT p_rect)
- {
- m_captive_rect = p_rect;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetState
- /// Purpose: Set the new state of the ball
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new ball state
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetState(const EBallState p_state)
- {
- m_state = p_state;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetVelMultiplier
- /// Purpose: Set the new ball brick 'bounce' velocity
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new velocity multiplier
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetVelMultiplier(const int p_vel_multi)
- {
- m_vel_multi = p_vel_multi;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetXPos
- /// Purpose: Set the X coordinate of the new ball position
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new X coordinate
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetXPos(const int p_x)
- {
- m_x_pos = p_x;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetXYPos
- /// Purpose: Set both the X and Y coordinates of the new ball position
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new X coordinate
- /// new Y coordinate
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetXYPos(const int p_x, const int p_y)
- {
- m_x_pos = p_x;
- m_y_pos = p_y;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetYPos
- /// Purpose: Set the Y coordinate of the new ball position
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new Y coordinate
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetYPos(const int p_y)
- {
- m_y_pos = p_y;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetXVel
- /// Purpose: Set the X component of the new ball velocity
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new X velocity
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetXVel(const int p_x_vel)
- {
- m_x_vel = p_x_vel;
- }
- ///////////////////////////////////////////////////////////////////////////////
- /// Method: SetYVel
- /// Purpose: Set the Y component of the new ball velocity
- ///////////////////////////////////////////////////////////////////////////////
- /// Receives: new Y velocity
- /// Returns: nothing
- ///////////////////////////////////////////////////////////////////////////////
- void CBall::SetYVel(const int p_y_vel)
- {
- m_y_vel = p_y_vel;
- }
- /// END OF FILE ///////////////////////////////////////////////////////////////