TetrisView.h
上传用户:apollo_111
上传日期:2022-08-09
资源大小:2146k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // TetrisView.h : interface of the CTetrisView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_)
  5. #define AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "FontGL.h"
  10. class CTetrisView : public CView
  11. {
  12. protected: // create from serialization only
  13. CTetrisView();
  14. DECLARE_DYNCREATE(CTetrisView)
  15. // Attributes
  16. public:
  17. CTetrisDoc* GetDocument();
  18. // Operations
  19. public:
  20. // Overrides
  21. // ClassWizard generated virtual function overrides
  22. //{{AFX_VIRTUAL(CTetrisView)
  23. public:
  24. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  25. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  26. protected:
  27. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  28. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  29. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  30. //}}AFX_VIRTUAL
  31. // Implementation
  32. public:
  33. virtual ~CTetrisView();
  34. /////////////////////////////////////////////////////////////////
  35. //添加成员函数与成员变量
  36. BOOL RenderScene();
  37. BOOL SetupPixelFormat(void);
  38. void SetLogicalPalette(void);
  39. BOOL InitializeOpenGL(CDC* pDC);
  40. HGLRC m_hRC; //OpenGL绘制描述表
  41. HPALETTE m_hPalette; //OpenGL调色板
  42. CDC*     m_pDC; //OpenGL设备描述表
  43. /////////////////////////////////////////////////////////////////
  44. void DrawGameIntro();
  45. int DrawGameRun(GLvoid);
  46. void DrawGameWin();
  47. void DrawGameFinish();
  48. void InitGame();
  49. void NewBlock();
  50. void CreateTexture(UINT textureArray[], LPSTR strFileName, int textureID);
  51. bool CheckWin();
  52. bool MoveDown();
  53. bool MoveLeft();
  54. bool MoveRight();
  55. bool Rotate();
  56. CFontGL m_font;
  57. GLuint texture[7];
  58. bool  keys[256];
  59. bool  gameintro;
  60. bool  gamerun;
  61. bool  gamewin;
  62. bool  gamefinish;
  63. bool  onetime;
  64. bool  test;
  65. bool  running;
  66. bool  lineformed;
  67. int xpos;
  68. int ypos;
  69. int map[10][20];
  70. int nextblockmap[4][5];
  71. int type;
  72. int state;
  73. int newstate;
  74. int oldstate;
  75. int linemultiplier;
  76. int lines;
  77. int score;
  78. int speed;
  79. short level;
  80. short linesformed;
  81. short startlines;
  82. struct ActiveBlocks
  83. {
  84. int x[4];
  85. int y[4];
  86. }*block, nextblock[4],currentblock[4];
  87. #ifdef _DEBUG
  88. virtual void AssertValid() const;
  89. virtual void Dump(CDumpContext& dc) const;
  90. #endif
  91. protected:
  92. // Generated message map functions
  93. protected:
  94. //{{AFX_MSG(CTetrisView)
  95. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  96. afx_msg void OnDestroy();
  97. afx_msg void OnSize(UINT nType, int cx, int cy);
  98. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  99. afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
  100. afx_msg void OnTimer(UINT nIDEvent);
  101. afx_msg void OnGameNew();
  102. //}}AFX_MSG
  103. DECLARE_MESSAGE_MAP()
  104. };
  105. #ifndef _DEBUG  // debug version in TetrisView.cpp
  106. inline CTetrisDoc* CTetrisView::GetDocument()
  107.    { return (CTetrisDoc*)m_pDocument; }
  108. #endif
  109. /////////////////////////////////////////////////////////////////////////////
  110. //{{AFX_INSERT_LOCATION}}
  111. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  112. #endif // !defined(AFX_MYSDOPENGLVIEW_H__75C5AAEC_37B0_4A8B_9132_9A0C663F6DDC__INCLUDED_)