📄 effect.cpp
字号:
// Effect.cpp: implementation of the CEffect class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MCGTimer.h"
#include "AnimFrame.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CEffect::CEffect()
{
m_pBillBoard = NULL;
m_pParticle = NULL;
m_pEffectEmitter = NULL;
D3DXMatrixIdentity(&m_matWorld);
m_fSize = 1.0f;
m_fRotationYaw = m_fRotationPitch = m_fRotationRoll = 0.0f;
m_vPos = D3DXVECTOR3(0.0f,0.0f,0.0f);
m_vDir = D3DXVECTOR3(0.0f,0.0f,0.0f);
m_fStartTime = 0.0f;
m_fEndTime = 0.0f;
m_pVertex = NULL;
m_pIndex = NULL;
m_pTimer = NULL;
}
CEffect::~CEffect()
{
SAFE_DELETE(m_pEffectEmitter);
SAFE_DELETE(m_pTimer);
SAFE_DELETE_ARRAY(m_pVertex);
SAFE_DELETE_ARRAY(m_pIndex);
}
void CEffect::CreateEffect( EFFECT_INFO * pEffectInfo, const char * szEffect )
{
m_wEffectIndex = NONE_EFFECT;
D3DXVECTOR3 vDir;
D3DXVec3Normalize(&vDir,&pEffectInfo->vDir);
float ry = atan2f( vDir.x, vDir.z );
float rx = atan2f( vDir.x*sinf(ry) + vDir.z*cosf(ry), vDir.y ) - (D3DX_PI/2);
if(!strcmp(szEffect,"EffectScrap")){
// 呼焊靛 屈侥 ....
// CAniBillBoard;
// 颇萍努 屈侥 ....
//
//CreateScrap(pEffectInfo);
m_wEffectIndex = SCRAP_EFFECT_1;
//SetSize(RandomNumber(1.0f, 1.5f));
SetSize(2.0f);
SetRotationRoll(RandomNumber(1.0f, 1.5f)); // 雀怜滴 律概 矫虐技~~
SetRotationYaw( ry );
SetRotationPitch( rx );
m_vPos = pEffectInfo->vStart;
m_vDir = vDir;
// 傲 咯扁辑 岿靛 备秦滚府技~~
D3DXMATRIX matScale, matRot, matTranslate;
D3DXMatrixIdentity(&matScale);
D3DXMatrixIdentity(&matRot);
D3DXMatrixIdentity(&matTranslate);
D3DXMatrixTranslation(&matTranslate, m_vPos.x, m_vPos.y, m_vPos.z);
D3DXMatrixScaling(&matScale, m_fSize, m_fSize, m_fSize);
D3DXMatrixRotationYawPitchRoll(&matRot, m_fRotationYaw, m_fRotationPitch, m_fRotationRoll );
m_matWorld = matScale * matRot * matTranslate;
}else if(!strcmp(szEffect,"FireNomalWeapon")){ // 醚备 捞蒲捧...
// 呼焊靛..
//CreateFireNomal(pEffectInfo);
m_wEffectIndex = FIRE_EFFECT_1;
SetSize(RandomNumber(1.0f, 1.5f));
SetRotationRoll(RandomNumber(1.0f, 1.5f)); // 雀怜滴 律概 矫虐技~~
SetRotationYaw( ry );
SetRotationPitch( rx );
m_vPos = pEffectInfo->vStart;
m_vDir = vDir;
// 傲 咯扁辑 岿靛 备秦滚府技~~
D3DXMATRIX matScale, matRot, matTranslate;
D3DXMatrixIdentity(&matScale);
D3DXMatrixIdentity(&matRot);
D3DXMatrixIdentity(&matTranslate);
D3DXMatrixTranslation(&matTranslate, m_vPos.x, m_vPos.y, m_vPos.z);
D3DXMatrixScaling(&matScale, m_fSize, m_fSize, m_fSize);
D3DXMatrixRotationYawPitchRoll(&matRot, m_fRotationYaw, m_fRotationPitch, m_fRotationRoll );
m_matWorld = matScale * matRot * matTranslate;
// D3DXMATRIX matWorldTest = matScale * matRot * matTranslate;
// m_matWorld = matScale * matRot;
// D3DXMatrixTranslation(&m_matWorld, m_vPos.x, m_vPos.y, m_vPos.z);
}else if(!strcmp(szEffect,"Item Break Down")){ // 酒捞袍 峦 谎寂瘤绰..
//CreateItemBreakDown(pEffectInfo);
}else if(!strcmp(szEffect,"Item Bumb")){ // 坷宏璃飘 肯猎 何寂咙..
// CreateItemBumb(pEffectInfo);
}else if(!strcmp(szEffect,"Create Item")){ // 酒捞袍 唱坷绰芭..
// CreateCreateItem(pEffectInfo);
}else if(!strcmp(szEffect,"Get Item")){ // 酒捞袍 冈绰芭
// CreateGetItem(pEffectInfo);
}else if(!strcmp(szEffect,"Foot Mark")){ // 惯磊惫..
//CreateFootMark(pEffectInfo);
}else if(!strcmp(szEffect,"Shot Nomal Mark")){ // 醚舅磊惫
m_wEffectIndex = DECAL_EFFECT_1;
return;
// 概浆 备窍蓖..
//CreateShotNomalMark(pEffectInfo);
// }else if(!strcmp(szEffect,"")){
// CreateScrap(pEffectInfo);
}else{
}
m_pTimer = new CMCGTimer;
}
void CEffect::Start()
{
if(m_pTimer)
m_pTimer->Start();
}
HRESULT CEffect::Update( float fElapsedTime )
{
if(!m_pTimer)
return E_FAIL;
if(!m_pTimer->IsRunning())
return E_FAIL;
return S_OK;
}
//CBaseEmitter * CEffect::GetUnit()
//{
// CBaseEmitter * pEmitter = m_pEffectEmitter;
// return m_pEffectEmitter;
//}
//void CEffect::Render()
//{
// m_pEffectEmitter->Render();
//}
HRESULT CEffect::CreateScrap( EFFECT_INFO *pEffectInfo )
{
// m_pEffectEmitter = new CEffectScrap;
// CEffectScrap * pEmitter = (CEffectScrap*)m_pEffectEmitter;
//
// ((CEffectScrap*)m_pEffectEmitter)->m_vPos = pEffectInfo->vStart; // 矫累困摹....
// ((CEffectScrap*)m_pEffectEmitter)->m_vDir = pEffectInfo->vDir;
// ((CEffectScrap*)m_pEffectEmitter)->m_dwParticleCount = 1; // 10俺俺 沥档父 谎府厘..快秋..
// ((CEffectScrap*)m_pEffectEmitter)->m_fEmitterSize = 0.1f;
// ((CEffectScrap*)m_pEffectEmitter)->LoadTexture(_T(".\\data\\Game\\Effect\\ParticleTexture.png"));
// ((CEffectScrap*)m_pEffectEmitter)->Create();
// /**/
return S_OK;
}
HRESULT CEffect::CreateFireNomal( EFFECT_INFO *pEffectInfo )
{
// m_pEffectEmitter = new CEffectFireNomal;
// CEffectFireNomal * pEmitter = (CEffectFireNomal*)m_pEffectEmitter;
//
// pEmitter->m_vPos = pEffectInfo->vStart; // 矫累困摹....
// pEmitter->m_vDir = pEffectInfo->vDir;
//// pEmitter->m_dwParticleCount = 1; // 10俺俺 沥档父 谎府厘..快秋..
//// pEmitter->m_fEmitterSize = 0.1f;
//// pEmitter->LoadTexture(_T(".\\data\\Game\\Effect\\ParticleTexture.png"));
//// pEmitter->Create();
return S_OK;
}
HRESULT CEffect::CreateItemBreakDown( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
HRESULT CEffect::CreateItemBumb( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
HRESULT CEffect::CreateCreateItem( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
HRESULT CEffect::CreateGetItem( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
HRESULT CEffect::CreateFootMark( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
HRESULT CEffect::CreateShotNomalMark( EFFECT_INFO *pEffectInfo )
{
return S_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -