www.pudn.com > StuntJumper.rar > ScrollingBackground.h


//----------------------------------------------------------------- 
// ScrollingBackground Object 
// C++ Header - ScrollingBackground.h 
//----------------------------------------------------------------- 
 
#pragma once 
 
//----------------------------------------------------------------- 
// Include Files 
//----------------------------------------------------------------- 
#include  
#include "Background.h" 
 
//----------------------------------------------------------------- 
// Custom Data Types 
//----------------------------------------------------------------- 
typedef WORD        SCROLLDIR; 
const SCROLLDIR     SD_UP     = 0, 
                    SD_RIGHT  = 1, 
                    SD_DOWN   = 2, 
                    SD_LEFT   = 3; 
 
//----------------------------------------------------------------- 
// Background Layer Class 
//----------------------------------------------------------------- 
class BackgroundLayer : Bitmap 
{ 
protected: 
  // Member Variables 
  RECT      m_rcViewport; 
  int       m_iSpeed; 
  SCROLLDIR m_sdDirection; 
 
public: 
  // Constructor(s)/Destructor 
  BackgroundLayer(HDC hDC, LPTSTR szFileName, int iSpeed, 
    SCROLLDIR sdDirection); 
  BackgroundLayer(HDC hDC, UINT uiResID, HINSTANCE hInstance, int iSpeed = 0, 
    SCROLLDIR sdDirection = SD_LEFT); 
 
  // General Methods 
  virtual void  Update(); 
  virtual void  Draw(HDC hDC, int x, int y, BOOL bTrans = FALSE, 
    COLORREF crTransColor = RGB(255, 0, 255)); 
  void          SetSpeed(int iSpeed)  { m_iSpeed = iSpeed; }; 
  void          SetDirection(SCROLLDIR sdDirection) 
    { m_sdDirection = sdDirection; }; 
  void          SetViewport(RECT& rcViewport) 
    { CopyRect(&m_rcViewport, &rcViewport); }; 
}; 
 
//----------------------------------------------------------------- 
// Scrolling Background Class 
//----------------------------------------------------------------- 
class ScrollingBackground : Background 
{ 
protected: 
  // Member Variables 
  int               m_iNumLayers; 
  BackgroundLayer*  m_pLayers[10]; 
 
public: 
  // Constructor(s)/Destructor 
          ScrollingBackground(int iWidth, int iHeight); 
  virtual ~ScrollingBackground(); 
 
  // General Methods 
  virtual void  Update(); 
  virtual void  Draw(HDC hDC, BOOL bTrans = FALSE, 
    COLORREF crTransColor = RGB(255, 0, 255)); 
  void          AddLayer(BackgroundLayer* pLayer); 
};