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_)