📄 effect.h
字号:
// Effect.h: interface for the CEffect class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EFFECT_H__DCE7B833_8E26_49AF_8582_FCE98E17F8D4__INCLUDED_)
#define AFX_EFFECT_H__DCE7B833_8E26_49AF_8582_FCE98E17F8D4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//struct MCOBJVERTEX;
//struct MCFVFINDEX;
#include "MCObjMesh.h"
struct EFFECT_INFO{
char szEffectName[64]; // 捞蒲飘 晨... 捞蒲飘 砒风 积己(胶农赋 屈侥)..
// 捞蒲砒风 积己窍瘤 臼备 傲 积己沁阑锭..
DWORD nMaxFrame; // 醚 橇方..
DWORD nPersec; // 檬寸 橇方荐..
char nRenderType; // 呼焊靛 屈侥捞衬..酒聪恭 颇萍努捞衬.? 0: 呼焊靛. 1: 颇萍努..
D3DXVECTOR3 vStart;
D3DXVECTOR3 vDir;
char nObjectType; // 荤恩捞衬 瘤屈捞衬.. 酒聪恭.. 坷宏璃飘衬..(0 == 荤恩 ,1~9 坷宏璃飘 辆幅(犁龙).. 10~19 瘤屈 辆幅(犁龙))..
// 单漠侩..
EFFECT_INFO()
{
// m_pVertex = NULL;
// m_pIndex = NULL;
}
~EFFECT_INFO()
{
// SAFE_DELETE_ARRAY(m_pVertex);
// SAFE_DELETE_ARRAY(m_pIndex);
}
};
class CBaseBillboard;
class CBaseParticle;
class CMCGTimer;
//-----------------------------------------------------------------------------
// Global data for the particles
//-----------------------------------------------------------------------------
struct EFFECTPARTICLE
{
D3DXVECTOR3 m_vPos; // 泅犁 困摹..
D3DXVECTOR3 m_vDir; // 唱哎 规氢..
FLOAT m_fSize; // 泅犁 农扁....
FLOAT m_fTime; // 泅犁 唱捞..? 酒聪恭.. 磷阑 唱捞..
D3DXCOLOR m_clrDiffuse; // Initial diffuse color 拿矾..
D3DXCOLOR m_clrFade; // Faded diffuse color
FLOAT m_fFade; // Fade progression
EFFECTPARTICLE * pNext;
};
class CBaseEmitter
{
public:
CBaseEmitter()
{
}
virtual ~CBaseEmitter()
{
}
public:
virtual HRESULT Create() = 0;
virtual HRESULT Render() = 0;
virtual HRESULT Update( float fElapsedTime ) = 0;
virtual HRESULT RestoreDeviceObjects() = 0;
virtual void InvalidateDeviceObjects() = 0;
};
class CEffect
{
public:
CEffect();
virtual ~CEffect();
public:
// void CreateEffect( EFFECT_INFO *pEffectInfo ); // 呼焊靛 屈侥衬..? 酒聪恭 颇瓶努 屈侥捞成..? 割俺唱 措衬..? 绢恫 捞蒲飘衬.?
void CreateEffect( EFFECT_INFO *pEffectInfo, const char * szEffect );
HRESULT Update( float fElapsedTime );
//void Render();
//CBaseEmitter * GetUnit();
WORD GetEffectIndex() { return m_wEffectIndex; }
CMCGTimer * GetTimer() { return m_pTimer; }
// D3DXVECTOR3 & Pos() { return m_vPos; }
// D3DXVECTOR3 & Dir() { return m_vDir; }
D3DXVECTOR3 Pos() { return m_vPos; }
D3DXVECTOR3 Dir() { return m_vDir; }
void SetSize(float size) { m_fSize = size; }
float GetSize(void) { return m_fSize; }
void SetRotationYaw( float fRadians ) { m_fRotationYaw = fRadians; }
void SetRotationPitch( float fRadians ) { m_fRotationPitch = fRadians; }
void SetRotationRoll( float fRadians ) { m_fRotationRoll = fRadians; }
float GetRotationYaw(void) { return m_fRotationYaw; }
float GetRotationPitch(void) { return m_fRotationPitch; }
float GetRotationRoll(void) { return m_fRotationRoll; }
D3DXMATRIXA16 & GetWorldMatrix() { return m_matWorld; }
void Start();
private:
HRESULT CreateScrap( EFFECT_INFO *pEffectInfo );
HRESULT CreateFireNomal( EFFECT_INFO *pEffectInfo );
HRESULT CreateItemBreakDown( EFFECT_INFO *pEffectInfo );
HRESULT CreateItemBumb( EFFECT_INFO *pEffectInfo );
HRESULT CreateCreateItem( EFFECT_INFO *pEffectInfo );
HRESULT CreateGetItem( EFFECT_INFO *pEffectInfo );
HRESULT CreateFootMark( EFFECT_INFO *pEffectInfo );
HRESULT CreateShotNomalMark( EFFECT_INFO *pEffectInfo );
public:
DWORD m_dwTriCnt;
DWORD m_dwVertCnt;
MCOBJVERTEX * m_pVertex;
MCFVFINDEX * m_pIndex;
private:
CBaseBillboard * m_pBillBoard;
CBaseParticle * m_pParticle;
CBaseEmitter * m_pEffectEmitter;
// EFFECTPARTICLE * m_pNext;
// CBillboard * m_pBillBoard;
// CParticle * m_pParticle;
char m_nRenderType;
char m_dwVBPoint; // 滚琶胶 滚欺 困摹 历厘侩..
WORD m_wEffectIndex;
// D3DXVECTOR3 m_vStart;
// D3DXVECTOR3 m_vDir;
float m_fStartTime;
float m_fEndTime;
CMCGTimer * m_pTimer;
D3DXVECTOR3 m_vPos;
D3DXVECTOR3 m_vDir;
float m_fRotationYaw;
float m_fRotationPitch;
float m_fRotationRoll;
float m_fSize;
D3DXMATRIXA16 m_matWorld;
int m_nMaterial; // 犁龙..
};
#endif // !defined(AFX_EFFECT_H__DCE7B833_8E26_49AF_8582_FCE98E17F8D4__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -