pad.cpp
上传用户:szsg028
上传日期:2022-08-01
资源大小:12k
文件大小:2k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. #include "pad.h"
  2. pad::pad()
  3. {
  4. m_fVelocidad = 0;
  5. m_Cancha = 0;
  6. m_brushBlanco = (HBRUSH)GetStockObject(WHITE_BRUSH);
  7. m_penBlanco = CreatePen(PS_SOLID, 1, RGB(255, 255, 255));
  8. }
  9. pad::~pad()
  10. {
  11. DeleteObject(m_brushBlanco);
  12. DeleteObject(m_penBlanco);
  13. }
  14. void pad::draw(HDC hDC)
  15. {
  16. HBRUSH hOldBrush;
  17. HPEN hOldPen;
  18. hOldBrush = (HBRUSH)SelectObject(hDC, m_brushBlanco);
  19. hOldPen = (HPEN)SelectObject(hDC, m_penBlanco);
  20. Rectangle(hDC, getX() - getWidth()/2, getY() - getHeight()/2, getX() + getWidth()/2, getY() + getHeight()/2);
  21. SelectObject(hDC, hOldBrush);
  22. SelectObject(hDC, hOldPen);
  23. }
  24. void pad::move(float dt)
  25. {
  26. if ( m_bMovingUp )
  27. {
  28. mY -= dt * m_fVelocidad;
  29. if ( mY-mHeight/2 < m_Cancha->getMarginTop() )
  30. {
  31. mY = m_Cancha->getMarginTop() + mHeight/2;
  32. }
  33. }
  34. if ( m_bMovingDown )
  35. {
  36. mY += dt * m_fVelocidad;
  37. if ( mY+mHeight/2 > m_Cancha->getMarginBottom() )
  38. {
  39. mY = m_Cancha->getMarginBottom() - mHeight/2;
  40. }
  41. }
  42. }
  43. void pad::movingUp()
  44. {
  45. m_bMovingDown = false;
  46. m_bMovingUp = true;
  47. }
  48. void pad::movingDown()
  49. {
  50. m_bMovingDown = true;
  51. m_bMovingUp = false;
  52. }
  53. void pad::movingNone()
  54. {
  55. m_bMovingDown = false;
  56. m_bMovingUp = false;
  57. }
  58. void pad::setVelocidad(float valor)
  59. {
  60. m_fVelocidad = valor;
  61. }
  62. void pad::setCancha(court* cancha)
  63. {
  64. m_Cancha = cancha;
  65. }
  66. void pad::centrarEnCancha()
  67. {
  68. setY( ( m_Cancha->getHeight() + m_Cancha->getMarginTop() - ( m_Cancha->getHeight() - m_Cancha->getMarginBottom() ) ) / 2);
  69. }