SCORE.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. //---------------------------------------------------------------------------
  2. // Score.h
  3. //---------------------------------------------------------------------------
  4. // Score object to track score, # lives, level.
  5. //---------------------------------------------------------------------------
  6. // (C) Copyright 1992-1997 by Microsoft Corporation.  All rights reserved.
  7. //
  8. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
  9. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  10. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
  11. // PARTICULAR PURPOSE.
  12. //---------------------------------------------------------------------------
  13. //---------------------------------------------------------------------------
  14. // Score class
  15. //---------------------------------------------------------------------------
  16. class CScore
  17.   {
  18. public:
  19.   // *** Constructor / Destructor ***
  20.   static HRESULT CreateScore(HINSTANCE hinst, HWND hwnd, HWND hwndPS, HWND hwndStat,
  21.                              long scoreFirst1Up, long scoreSecond1Up, long dscoreNext1Up,
  22.                              int cship, WORD idbmpShip, WORD idbmpPlus,
  23.                              CScore **ppscoreOut);
  24.   CScore(HINSTANCE hinst, HWND hwnd, HWND hwndPS, HWND hwndStat, long scoreSecond1Up, long scoreFirst1Up, long dscoreNext1Up, int cship, WORD idbmpShip, WORD idbmpPlus);
  25.   ~CScore();
  26.   // *** Public methods ***
  27.   void NewGame(void);
  28.   void Add(long d);
  29.   void Paint(HDC hdc);
  30.   void SetStatusText(const char *pszText);
  31.   void Size(int cx, int cy);
  32.   // *** Public accessor methods ***
  33.   inline long GetScore(void)      {return m_score;};
  34.   inline void SetScore(int s)     {m_score = s;   InvalidateRect(m_hwnd, &m_rectScore, TRUE);};
  35.   inline long GetLevel(void)      {return m_lvl;};
  36.   inline long GetCShip(void)      {return m_cship;};
  37.   inline void SetLevel(int lvl)   {m_lvl = lvl;   InvalidateRect(m_hwnd, &m_rectLvl,  TRUE);};
  38.   inline void NextLevel(void)     {m_lvl++;       InvalidateRect(m_hwnd, &m_rectLvl,  TRUE);};
  39.   inline void SetCShip(int cship) {m_cship=cship; InvalidateRect(m_hwnd, &m_rectShip, TRUE);};
  40.   inline void ShipKilled(void)    {m_cship--;     InvalidateRect(m_hwnd, &m_rectShip, TRUE);};
  41.   inline int  GetSize(void)       {return m_cyMax;};
  42.   // Public members
  43.   long      m_scoreFirst1Up;
  44.   long      m_scoreSecond1Up;
  45.   long      m_dscoreNext1Up;
  46.   short     m_cshipStart;
  47.   long      m_scoreNext1Up; // Inits to m_scoreFirst1Up
  48. private:
  49.   // *** Private member variables ***
  50.   // Reset at NewGame()
  51.   long      m_score;        // Inits to 0
  52.   short     m_cship;        // Inits to m_cshipStart
  53.   short     m_lvl;          // Inits to 1
  54.   // Static state passed into contructor
  55.   HINSTANCE m_hinst;
  56.   HWND      m_hwnd;
  57.   HWND      m_hwndPS;
  58.   HWND      m_hwndStat;
  59.   // State calculated from static state
  60.   RECT      m_rectScore;
  61.   RECT      m_rectShip;
  62.   RECT      m_rectLvl;
  63.   HBITMAP   m_hbmpShip;
  64.   HBITMAP   m_hbmpPlus;
  65.   int       m_cyMax,  m_cyStat;
  66.   int       m_cxShip, m_cyShip;
  67.   int       m_cxPlus, m_cyPlus;
  68.   // Set if constructor fails
  69.   static HRESULT s_hr;
  70.   // DEBUG info
  71.   #define SIG_Score 'Scor'
  72.   DECLARE_SIGNATURE(SIG_Score);
  73.   };
  74. //--- EOF -------------------------------------------------------------------