Draw_Cards_Engine.h
上传用户:may_xy
上传日期:2007-08-09
资源大小:1519k
文件大小:2k
源码类别:

游戏

开发平台:

C/C++

  1. // Draw_Cards_Engine.h: interface for the CDraw_Cards_Engine class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_DRAW_CARDS_ENGINE_H__B3E7EB3D_BD8D_42F0_B397_F9CC356B4115__INCLUDED_)
  5. #define AFX_DRAW_CARDS_ENGINE_H__B3E7EB3D_BD8D_42F0_B397_F9CC356B4115__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. //扑克的位置;
  10. class CCardPos
  11. {
  12. public:
  13. int m_nX;  //
  14. int m_nY;
  15. BOOL m_bVisual; //是否可见,1为可见,0为不可见;
  16. public:
  17. CCardPos();
  18. };
  19. //扑克牌布局地图结构;
  20. class CCardsMap
  21. {
  22. public:
  23. int m_nUpCounter;
  24. CCardPos Center0[20];  //中间未出的牌;
  25. CCardPos Center1[20];  //中间已经出的牌;
  26. CCardPos Center2[20];  //中间刚出的牌;
  27. CCardPos Left0[20];  //左边未出的牌;
  28. CCardPos Left1[20];  //左边已经出的牌;
  29. CCardPos Left2[20];  //左边刚出的牌;
  30. CCardPos Right0[20];  //右边未出的牌;
  31. CCardPos Right1[20];  //右边已经出的牌;
  32. CCardPos Right2[20];  //右边刚出的牌;
  33. int m_nLordCards; //1表示显示牌背面,2表示显示牌面;
  34. CCardPos m_cLordCards[3];   //三张地主牌;
  35. CCardPos m_cDistributeCard;   //
  36. public:
  37. CCardsMap();
  38. };
  39. class CDrawCardsEngine  
  40. {
  41. private:
  42. //存放扑克的离屏表面;
  43. LPDIRECTDRAWSURFACE7  lpddsbg_Cards[15];
  44. //精灵颜色键;
  45. const DWORD BLUE;
  46. private:
  47. int DrawCard(int x,
  48. int y,
  49. int Color,
  50. int Value,
  51. LPDIRECTDRAWSURFACE7 lpdds_Dest = lpddsback ); 
  52. int MoveCard(int Dest_x,
  53. int Dest_y,
  54. int Source_x,
  55. int Source_y,
  56. int Card_Color,
  57. int Card_Value,
  58. int Speed = 140); //移动速度,以象素为单位;
  59. public:
  60. int m_bVisual;          //牌是否可见;
  61. public:
  62. CDrawCardsEngine();
  63. virtual ~CDrawCardsEngine();
  64. int Init();
  65. void Redraw(LPDIRECTDRAWSURFACE7  pSurface = lpddsback);
  66. int DrawCleanUp(); //中间(本机)玩家更新牌面并依次陈列出来;
  67. int Dealing(); //发牌;
  68. int DealingLord(int); //发地主牌;
  69. int CenterDiscarding();      //本机玩家出牌;
  70. int CenterBacking();  //本机玩家刚出的牌从刚出牌区移动到已经出牌区;
  71. int LeftDiscarding();     //左边玩家出牌;
  72. int LeftBacking(); //左边玩家刚出的牌从刚出牌区移动到已经出牌区;
  73. int RightDiscarding();     //右边玩家出牌;
  74. int RightBacking(); //右边玩家刚出的牌从刚出牌区移动到已经出牌区;
  75. };
  76. #endif // !defined(AFX_DRAW_CARDS_ENGINE_H__B3E7EB3D_BD8D_42F0_B397_F9CC356B4115__INCLUDED_)