CBall.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////////
  2. /// File:    CBall.h
  3. /// Purpose: Declaration of CBalls Class
  4. ///          This class represents the balls (free and captive) during the
  5. ///          life of the game
  6. ///////////////////////////////////////////////////////////////////////////////
  7. /// Configuation Management
  8. /// 
  9. /// Who         When          Description
  10. /// ===========================================================================
  11. /// R. Walter   28-Dec-2003   Initial Version/Release
  12. ///
  13. ///////////////////////////////////////////////////////////////////////////////
  14. /// Copyright 2003: Robert Walter   All rights reserved
  15. ///////////////////////////////////////////////////////////////////////////////
  16. #ifndef CBALL_H_
  17. #define CBALL_H_
  18. /// HEADER DEFINES ////////////////////////////////////////////////////////////
  19. #define WIN32_LEAN_AND_MEAN
  20. #include <windows.h>
  21. #include <windowsx.h>
  22. /// CONSTANTS /////////////////////////////////////////////////////////////////
  23. const int BALL_WIDTH  = 10;
  24. const int BALL_HEIGHT = 10;
  25. /// TYPE / CLASS DECLARATIONS /////////////////////////////////////////////////
  26. enum EBallState {IDLE, FREE, CAPTIVE, LOST};
  27. class CBall
  28. {
  29. private:
  30.     int  m_x_pos;     /// current X position of the top left corner of the ball
  31.     int  m_y_pos;     /// current Y position of the top left corner of the ball
  32.     int  m_x_vel;     /// number of pixels ball will travel in X direction each frame
  33.     int  m_y_vel;     /// number of pixels ball will travel in Y direction each frame
  34. int  m_vel_multi; /// velocity multiplier
  35. RECT m_captive_rect; /// only set for ball with m_state = CAPTIVE
  36. EBallState m_state;  /// current state of the ball
  37. public:
  38.     // constructor
  39. CBall();
  40.     // destructor
  41. ~CBall();
  42.     // member functions
  43. int GetXPos();
  44. int GetYPos();
  45. int GetXVel();
  46. int GetYVel();
  47. int GetVelMultiplier();
  48. RECT  GetCaptiveRect();
  49. RECT  GetBallRect();
  50. EBallState GetState();
  51. void SetXPos(const int p_x);
  52. void SetYPos(const int p_y);
  53. void SetXYPos(const int p_x, const int p_y);
  54. void SetXVel(const int p_x_vel);
  55. void SetYVel(const int p_y_vel);
  56. void SetState(const EBallState p_state);
  57. void SetVelMultiplier(const int p_vel_multi);
  58. void SetCaptiveRect(const RECT p_rect);
  59. void ReflectX();
  60. void ReflectY();
  61. };
  62. #endif