damageemitter.cpp

来自「国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国」· C++ 代码 · 共 230 行

CPP
230 行
字号
// DamageEmitter.cpp: implementation of the CDamageEmitter class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DamageEmitter.h"

#include "AnimFrame.h"
#include "EffectModel.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
CDamageEmitter::CDamageEmitter()
{

}

CDamageEmitter::~CDamageEmitter()
{

}

//////////////////////////////////////////////////////////////////////
// CNomalGunDamage
//////////////////////////////////////////////////////////////////////

CNomalGunDamage::CNomalGunDamage()
{
	m_pFlash = NULL;
	m_pBullet = NULL;
	m_pSprBullet = NULL;
	m_pScrap = NULL;
	m_pSprScrap = NULL;
	m_pSmoke = NULL;
	m_pSprSmoke = NULL;
	m_pBillTest = NULL;
	m_pSprBillTest = NULL;

	m_pTimer = NULL;
}

CNomalGunDamage::~CNomalGunDamage()
{
	SAFE_DELETE(m_pFlash);
	SAFE_DELETE(m_pBullet);
	SAFE_DELETE(m_pSprBullet);
	SAFE_DELETE(m_pScrap);
	SAFE_DELETE(m_pSprScrap);
	SAFE_DELETE(m_pSmoke);
	SAFE_DELETE(m_pSprSmoke);
	SAFE_DELETE(m_pBillTest);
	SAFE_DELETE(m_pSprBillTest);

	SAFE_DELETE(m_pTimer);
}

void CNomalGunDamage::Create()
{
	m_pFlash = new CEffectModel;
	m_pFlash->LoadFile(".\\data\\Game\\Effect\\Scrap.MC1");
	m_pBullet = new CAnimSequence;
	m_pBullet->AddFrame(".\\data\\Game\\Effect\\bullet1.jpg", 0.15f);
	m_pBullet->AddFrame(".\\data\\Game\\Effect\\bullet2.jpg", 0.15f);
	m_pBullet->AddFrame(".\\data\\Game\\Effect\\bullet3.jpg", 0.15f);
	m_pSprBullet = new CSpriteMesh;
	m_pSprBullet->SetAnim( m_pBullet );
	m_pSprBullet->SetModel( m_pFlash );
	m_pScrap = new CAnimSequence;
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame1.jpg", 0.05f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame2.jpg", 0.02f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame3.jpg", 0.01f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame4.jpg", 0.01f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame5.jpg", 0.01f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame6.jpg", 0.01f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame7.jpg", 0.01f);
	m_pScrap->AddFrame(".\\data\\Game\\Effect\\b_flame8.jpg", 0.01f);
	m_pSprScrap = new CSpriteParticle;
	m_pSprScrap->SetAnim( m_pScrap );
	m_pSmoke = new CAnimSequence;
	m_pSmoke->AddFrame(".\\data\\Game\\Effect\\fireswirl2blue.jpg", 0.05f);
	m_pSprSmoke = new CSpriteParticle;
	m_pSprSmoke->SetAnim( m_pSmoke );
	m_pBillTest = new CAnimSequence;
	m_pBillTest->AddFrame(".\\data\\Game\\Effect\\fanfx.jpg", 0.05f);
	m_pSprBillTest = new CSpriteBillBoard;
	m_pSprBillTest->SetAnim( m_pBillTest );

	m_pTimer = new CMCGTimer;
}

void CNomalGunDamage::Render()
{
	D3DXMATRIX matWorld;
//	g_pApp->GetD3dDevice()->SetTransform(D3DTS_WORLD,&matWorld);
	D3DXMatrixIdentity( &matWorld );
	if(m_pTimer->IsRunning())
	{
//		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_LIGHTING,  TRUE );
//
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHABLENDENABLE,  TRUE);
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_SRCBLEND,  D3DBLEND_ONE );
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
//
//		g_pApp->GetD3dDevice()->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
//		g_pApp->GetD3dDevice()->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
//		g_pApp->GetD3dDevice()->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
//		
//		g_pApp->GetD3dDevice()->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
//		g_pApp->GetD3dDevice()->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
//
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE );
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHAREF, 0x5 );		// 舅颇 抛胶飘 扁霖 侨伎..
//		//g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHAREF, 0x30 );		// 舅颇 抛胶飘 扁霖 侨伎..
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATER );		//
//
//		m_pSprBullet->SetRotationRoll( (float)m_pTimer->GetTime() );
		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_ZENABLE, FALSE);
		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );
//		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_ZENABLE, TRUE);
//		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
		//g_pApp->GetD3dDevice()->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);

		m_pSprBullet->Render(matWorld);

		//g_pApp->GetD3dDevice()->SetRenderState(D3DRS_CULLMODE, D3DCULL_CW);

		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ZWRITEENABLE, TRUE );
		g_pApp->GetD3dDevice()->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);

		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHATESTENABLE, FALSE );
		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE );
		g_pApp->GetD3dDevice()->SetRenderState( D3DRS_ZENABLE, TRUE );		
	}
	
	if (m_pTimer->GetTime() > 0.5f)
	{
		m_pTimer->Stop();
		//m_pSprBullet->Timer().Stop();
	}
//	m_pSprBullet->SetRotationYaw( (float)m_pTimer->GetTime() );
	//m_pSprBullet->SetRotationRoll( (float)m_pTimer->GetTime() );
	//m_pSprBullet->SetRotationPitch( (float)m_pTimer->GetTime() );
}

void CNomalGunDamage::Update( float fElapsedTime )
{

}

void CNomalGunDamage::SetEmitter( D3DVECTOR vPos, D3DXVECTOR3 vNomal, int nMaterial )
{
	m_vPos = vPos;
	m_vNomal = vNomal;
	m_nMaterial = nMaterial;	
	
	m_pSprBullet->Pos() = vPos;
	//m_pSprBullet->Pos() = D3DXVECTOR3(0.0f,0.0f,0.0f);
	m_pSprBullet->Timer().Begin();
//	m_pSprBullet->SetSize(10.0f);
//	m_pSprBullet->SetSize(10.0f);
	m_pSprBullet->SetSize(2.0f);
	//m_pSprBullet->SetSize(RandomNumber(0.1f, 2.5f));
	// 规氢捞 0.0.0 捞扼备 窍恭..
	m_pSprBullet->SetRotationPitch( (float)m_pTimer->GetTime() );
	D3DXVec3Normalize(&vNomal,&vNomal);

	float ry = atan2f( vNomal.x, vNomal.z );
	float rx = atan2f( vNomal.x*sinf(ry) + vNomal.z*cosf(ry), vNomal.y ) - (D3DX_PI/2);
	m_pSprBullet->SetRotationYaw( ry );
	m_pSprBullet->SetRotationPitch( rx );
//	m_pSprBullet->SetEmitter( vPos, vNomal, RandomNumber(0, 2) );
	//m_pSprBullet->SetRotationYaw( vNomal.x );
	//m_pSprBullet->SetRotationPitch( (float)D3DX_PI );
	//m_pSprBullet->SetRotationPitch( (float)m_pSprBullet->Timer().GetTime() );
	//m_pSprBullet->SetRotationRoll( vNomal.z );

//	vVec1 = TargetPos - CameraPos;
//
//vVec2 = TargetPos - CameraPos;
//
//困俊 翠函窍脚 盒 臂俊辑... vVec1窍绊 vVec2父 呼妨 镜霸夸... 
//氦磐狼 郴利篮 滴 氦磐狼 辨捞 己盒 * Cosine( 阿档 ) 捞芭电夸. 
//弊贰辑, 措面 滴 氦磐啊 捞风绰 阿篮 捞犯霸 钎泅捞 瞪 芭 鞍匙夸. 
//
//内靛: 
//float theta = acosf( D3DXVec3Dot( &vVec1, &vVec2 ) / ( D3DXVec3Length( &vVec1) * D3DXVec3Length( &vVec2) ) )
//
// 
//
//
//澜... 盒葛啊 0捞 救登霸 炼缴....
	
}
// 归磐风 雀怜窍绰 规过 戎犁伙捞 茄巴.. 捞逞捞 狐福促恭..... 捞逞阑 静磊..
//HRESULT CBullet::CreateBullet(CMCModel *pModel, ITEMINFO *pBulletInfo,D3DXVECTOR3 vStartPos, LPDIRECT3DDEVICE9 pd3dDevice)
//{
//	SAFE_DELETE(m_pPart);
//
//	if(!m_bActive) return E_FAIL;
//
//	m_pd3dDevice	= pd3dDevice;
//	m_ptagInfo		= pBulletInfo;
//	m_vStartPos		= vStartPos;
//
//	m_pPart = new CMCParts;
//	m_pPart->CreateParts(pd3dDevice,MODEL_BULLET,pModel);
//	m_pPart->Scaling(m_ptagInfo->fScale[0],m_ptagInfo->fScale[1],m_ptagInfo->fScale[2]);
//
//	D3DXVECTOR3 vUp,v1,v2;
//
//	v1 = D3DXVECTOR3(m_ptagInfo->fDir[0],m_ptagInfo->fDir[1],m_ptagInfo->fDir[2]);
//	v2 = m_pPart->GetLookDir();
//
//	float R = CUtility::SectorV1ToV2(&v1,&v2);
//	D3DXVec3Cross(&vUp,&v2,&v1);
//	D3DXVec3Normalize(&vUp,&vUp);
//	m_pPart->RotateAxis(&vUp,R);
//
//	v2 = m_pPart->GetLookDir();
//
//	m_pPart->Translation(&vStartPos,TRUE);
//	m_pPart->SetWorldMatrix();
//
//	m_pCollision = new CCollision;
//	m_pCollision->CreateOBB(m_pPart->GetBoundBox()->vMins,m_pPart->GetBoundBox()->vMaxs,m_pPart->GetWorldMatrix());
//	return S_OK;
//}
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?