📄 gunex.h
字号:
// GunEx.h: interface for the CGunEx class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GUNEX_H__2D0D4E61_68DB_4410_83E3_08DF9E06A997__INCLUDED_)
#define AFX_GUNEX_H__2D0D4E61_68DB_4410_83E3_08DF9E06A997__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CPlasmaBulletArray;
class CMCGTimer;
class CAnimSequence;
class CParticleEmitter;
class CGunEx
{
public:
CGunEx();
virtual ~CGunEx();
};
class CPlasmaGun
{
public:
CPlasmaGun();
virtual ~CPlasmaGun();
public:
HRESULT Create();
HRESULT Render();
HRESULT Update( float fElapsedTime );
HRESULT RestoreDeviceObjects();
void InvalidateDeviceObjects();
public:
HRESULT LoadTexture(const char *strTextureFilename);
BOOL CanFire();
void Fire();
CMCGTimer * Timer() { return m_Timer; }
D3DXVECTOR3 Pos() { return m_vPos; }
void SetBulletArray( CPlasmaBulletArray *array) { m_pBulletArray = array; }
protected:
private:
void AssembleWorldMatrix( D3DXMATRIX &matWorld, D3DXVECTOR3 vTranslation = D3DXVECTOR3(0,0,0));
public:
protected:
private:
CMCGTimer * m_Timer;
D3DXVECTOR3 m_vPos;
CPlasmaBulletArray * m_pBulletArray;
};
//////////////////////////////////////////////////////////////////////////
// CLaserGun
//////////////////////////////////////////////////////////////////////////
class CLaserGun
{
public:
CLaserGun();
virtual ~CLaserGun();
public:
HRESULT Create();
HRESULT Render();
HRESULT Update( float fElapsedTime );
HRESULT RestoreDeviceObjects();
void InvalidateDeviceObjects();
public:
HRESULT LoadTexture(const char *strTextureFilename);
BOOL CanFire();
void Fire();
CMCGTimer * Timer() { return m_Timer; }
D3DXVECTOR3 Pos() { return m_vPos; }
protected:
private:
void AssembleWorldMatrix( D3DXMATRIX &matWorld, D3DXVECTOR3 vTranslation = D3DXVECTOR3(0,0,0));
public:
protected:
private:
LPDIRECT3DVERTEXBUFFER9 m_pVBLaser;
LPDIRECT3DINDEXBUFFER9 m_pIBLaser;
CMCGTimer * m_Timer;
D3DXVECTOR3 m_vPos;
CAnimSequence * m_pAnim;
CParticleEmitter * m_Emitter;
D3DXMATRIX m_matWorld;
bool m_bIsFiring;
};
//////////////////////////////////////////////////////////////////////////
// CShockwave
//////////////////////////////////////////////////////////////////////////
//typedef
typedef LPDIRECT3DVERTEXBUFFER9 LPD3DVB;
typedef LPDIRECT3DTEXTURE9 LPD3DTXTURE;
class CShockwave
{
public:
CShockwave();
virtual ~CShockwave();
public:
HRESULT Create();
HRESULT Render();
HRESULT Update( float fElapsedTime );
HRESULT RestoreDeviceObjects();
void InvalidateDeviceObjects();
public:
HRESULT CreateEx( float fSize, float fThickness, int iNumDivisions, float fExpandRate, float fLifetime);
HRESULT LoadTexture(const char *strTextureFilename);
void SetAlpha(int i255Alpha);
D3DXVECTOR3 &Pos() { return(m_vPos); }
LPD3DVB GetVB() { return(m_pVB); }
public:
virtual void Begin() { m_bIsRunning = true; }
virtual void Pause() { m_bIsRunning = false; }
virtual void Stop() { Pause(); m_fAge = 0.0f; m_fScale = 0.0001f; }
virtual bool IsRunning() { return(m_bIsRunning); }
protected:
private:
public:
protected:
private:
bool m_bIsRunning;
LPD3DTXTURE m_pTexture;
LPD3DVB m_pVB;
D3DXVECTOR3 m_vPos;
int m_iNumDivisions;
float m_fThickness;
float m_fLifetime;
float m_fAge;
float m_fExpandRate;
float m_fSize;
float m_fScale;
int m_iNumVerts;
};
#endif // !defined(AFX_GUNEX_H__2D0D4E61_68DB_4410_83E3_08DF9E06A997__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -