www.pudn.com > tankedazhan.rar > Sprite.h


// Sprite.h: interface for the CSprite class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SPRITE_H__6DC846C1_DC07_11D3_B12A_831AB3E93B25__INCLUDED_) 
#define AFX_SPRITE_H__6DC846C1_DC07_11D3_B12A_831AB3E93B25__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include  
 
//##ModelId=3EBF9A4701D4 
class CSprite   
{ 
public: 
	//##ModelId=3EBF9A4701F7 
	CSprite(); 
	//##ModelId=3EBF9A4701EF 
	void Create( int w, int h, BOOL active ) 
	{ 
		m_width = w; 
		m_height = h;  
		m_active = active; 
	} 
	//##ModelId=3EBF9A4701ED 
	void BitBlt( LPDIRECTDRAWSURFACE bmp ){ m_bmp = bmp; } 
	//##ModelId=3EBF9A4701EB 
	BOOL HitTest( CSprite& sprite );	 
	//##ModelId=3EBF9A4701E9 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
 
public: 
	//##ModelId=3EBF9A4701E6 
	LPDIRECTDRAWSURFACE m_bmp; 
	//##ModelId=3EBF9A4701D9 
	BOOL	m_active; 
	//##ModelId=3EBF9A4701D8 
	float	m_x; 
	//##ModelId=3EBF9A4701D7 
	float	m_y; 
	//##ModelId=3EBF9A4701D6 
	int		m_width; 
	//##ModelId=3EBF9A4701D5 
	int		m_height; 
}; 
 
 
enum BONUS 
{ 
	BONUS_LIFE, 
	BONUS_CLOCK, 
	BONUS_SHOVEL, 
	BONUS_BOMB, 
	BONUS_STAR, 
	BONUS_HELMET 
}; 
 
 
//##ModelId=3EBF9A480261 
class CBonus : public CSprite 
{ 
public: 
	//##ModelId=3EBF9A480277 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
 
	//##ModelId=3EBF9A480274 
	BONUS	m_type; 
	//##ModelId=3EBF9A480271 
	DWORD	m_lastTime; 
	//##ModelId=3EBF9A480263 
	DWORD	m_flickerTime; 
}; 
 
//##ModelId=3EBF9A4703C8 
class CExplode: public CSprite 
{ 
public: 
	//##ModelId=3EBF9A4703E2 
	void BitBlt( LPDIRECTDRAWSURFACE bmp1, LPDIRECTDRAWSURFACE bmp2 ) 
	{ 
		m_bmp = bmp1; 
		m_explode = bmp2; 
	} 
	//##ModelId=3EBF9A4703E0 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
	 
	//##ModelId=3EBF9A4703DD 
	LPDIRECTDRAWSURFACE m_explode; 
	//##ModelId=3EBF9A4703DA 
	BOOL	m_bExplode; 
	//##ModelId=3EBF9A4703D9 
	DWORD	m_time; 
}; 
 
 
//##ModelId=3EBF9A480290 
class CBore : public CSprite 
{ 
public: 
	//##ModelId=3EBF9A480296 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
	//##ModelId=3EBF9A480295 
	void Bore() 
	{ 
		m_active = TRUE; 
		m_bAdvance = TRUE; 
		m_frame = 0; 
		m_time = timeGetTime(); 
	} 
 
	//##ModelId=3EBF9A480294 
	int	  m_frame; 
	//##ModelId=3EBF9A480293 
	DWORD m_time; 
	//##ModelId=3EBF9A480292 
	BOOL  m_bAdvance; 
}; 
 
 
enum DIRECTION 
{ 
	DIR_UP, 
	DIR_RIGHT, 
	DIR_DOWN, 
	DIR_LEFT 
}; 
 
//##ModelId=3EBF9A480242 
class CBullet: public CSprite 
{ 
public: 
	//##ModelId=3EBF9A48024D 
	CBullet(); 
	//##ModelId=3EBF9A48024C 
	BOOL Move(); 
	//##ModelId=3EBF9A48024A 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
 
	//##ModelId=3EBF9A480247 
	DIRECTION	m_dir; 
	//##ModelId=3EBF9A480244 
	float		m_speed; 
}; 
 
 
 
//##ModelId=3EBF9A48006D 
class CTank: public CBullet 
{ 
public: 
	//##ModelId=3EBF9A4800B4 
	CTank(); 
	//##ModelId=3EBF9A4800B0 
	void Create( int w, int h, BOOL active ) 
	{ 
		CBullet::Create( w, h, active ); 
		m_bore.Create( 32, 32, TRUE ); 
	}	 
	//##ModelId=3EBF9A4800AB 
	void BitBlt( LPDIRECTDRAWSURFACE tank, LPDIRECTDRAWSURFACE bullet, 
				LPDIRECTDRAWSURFACE shield, LPDIRECTDRAWSURFACE bore ) 
	{ 
		m_bmp = tank; 
		m_bmpShield = shield; 
		m_bullet[0].BitBlt( bullet ); 
		m_bullet[1].BitBlt( bullet ); 
		m_bore.BitBlt( bore ); 
	} 
	//##ModelId=3EBF9A4800A3 
	void ChangeDirection( DIRECTION dir ); 
	//##ModelId=3EBF9A4800A2 
	BOOL Move(){ m_frame = !m_frame; return CBullet::Move(); } 
	//##ModelId=3EBF9A48009C 
	BOOL HitTest( CTank& sprite, int oldx, int oldy ); 
	//##ModelId=3EBF9A4800A0 
	BOOL HitTest( CSprite& sprite ){ return CSprite::HitTest(sprite); } 
	//##ModelId=3EBF9A480095 
	void DrawShield( LPDIRECTDRAWSURFACE pdds ); 
	//##ModelId=3EBF9A480093 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
	//##ModelId=3EBF9A480091 
	void Shield( DWORD time ) 
	{ 
		m_bShield1 = TRUE; 
		m_bShield = TRUE; 
		m_maxTime = time; 
		m_shieldTime = m_flickerTime = timeGetTime(); 
	} 
 
	//##ModelId=3EBF9A48008E 
	LPDIRECTDRAWSURFACE m_bmpShield; 
	//##ModelId=3EBF9A480086 
	CBullet m_bullet[2]; 
	//##ModelId=3EBF9A480083 
	DWORD	m_time; 
	//##ModelId=3EBF9A480082 
	int		m_frame; 
	//##ModelId=3EBF9A480081 
	int		m_type; 
	//##ModelId=3EBF9A480080 
	BOOL	m_bShield; 
	//##ModelId=3EBF9A48007F 
	BOOL	m_bShield1; 
	//##ModelId=3EBF9A48007E 
	DWORD	m_maxTime; 
	//##ModelId=3EBF9A48007D 
	DWORD	m_shieldTime; 
	//##ModelId=3EBF9A480075 
	DWORD	m_flickerTime; 
	//##ModelId=3EBF9A480074 
	BOOL	m_bBoring; 
	//##ModelId=3EBF9A480071 
	CBore	m_bore; 
}; 
 
 
//##ModelId=3EBF9A47032C 
class CEnemy : public CTank 
{ 
public: 
	//##ModelId=3EBF9A470343 
	void ChangeDirection(); 
	//##ModelId=3EBF9A470342 
	BOOL Fire(); 
	//##ModelId=3EBF9A470341 
	void Reborn(); 
	//##ModelId=3EBF9A47033F 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
 
	//##ModelId=3EBF9A47033E 
	BOOL	m_bBonus; 
	//##ModelId=3EBF9A47033D 
	BOOL	m_bShowRed; 
	//##ModelId=3EBF9A47033C 
	DWORD	m_redTime; 
	//##ModelId=3EBF9A47032E 
	int		m_level; 
}; 
 
 
 
//##ModelId=3EBF9A480203 
class CPlayer : public CTank 
{ 
public: 
	//##ModelId=3EBF9A480213 
	BOOL ProcessInput( WORD input, DWORD time ); 
	//##ModelId=3EBF9A48020D 
	BOOL Fire(); 
	//##ModelId=3EBF9A48020B 
	void Draw( LPDIRECTDRAWSURFACE pdds ); 
	//##ModelId=3EBF9A48020A 
	void Reborn(); 
	//##ModelId=3EBF9A480209 
	void Lock() 
	{  
		m_bLocked = TRUE; 
		m_shieldTime = m_flickerTime = timeGetTime(); 
	} 
 
	//##ModelId=3EBF9A480208 
	int		m_nLife; 
	//##ModelId=3EBF9A480207 
	int		m_nScore; 
	//##ModelId=3EBF9A480206 
	BOOL	m_bLocked; 
	//##ModelId=3EBF9A480205 
	BOOL	m_bShow;		// for flickering when locked 
}; 
 
 
#endif // !defined(AFX_SPRITE_H__6DC846C1_DC07_11D3_B12A_831AB3E93B25__INCLUDED_)