?? 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 <ddraw.h>
//##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_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -