⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sparksfx.h

📁 Blood 2全套源码
💻 H
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : SparksFX.h
//
// PURPOSE : Sparks special fx class - Definition
//
// CREATED : 1/17/98
//
// ----------------------------------------------------------------------- //

#ifndef __SPARKS_FX_H__
#define __SPARKS_FX_H__

#include "BaseParticleSystemFX.h"


struct SCREATESTRUCT : public SFXCREATESTRUCT
{
	SCREATESTRUCT::SCREATESTRUCT();

	DRotation rRot;
	DVector vPos;
	DVector vDir;
	DVector vColor1;
	DVector vColor2;
	DBYTE	nSparks;
	DFLOAT	fDuration;
	DFLOAT	fEmissionRadius;
	HSTRING hstrTexture;
	DFLOAT	fRadius;
	DFLOAT	fGravity;
	DBOOL	bFadeColors;
};

inline SCREATESTRUCT::SCREATESTRUCT()
{
	memset(this, 0, sizeof(SCREATESTRUCT));
	rRot.m_Spin = 1.0f;
}


class CSparksFX : public CBaseParticleSystemFX
{
	public :

		CSparksFX() : CBaseParticleSystemFX() 
		{
			VEC_INIT(m_vDir);
			VEC_SET(m_vColor1, 255.0f, 255.0f, 255.0f);
			VEC_SET(m_vColor2, 255.0f, 255.0f, 0.0f);
			m_nSparks			= 5;
			m_fDuration			= 1.0f;
			m_fEmissionRadius	= 0.3f;
			
			m_fStartTime = 0.0f;
			m_hstrTexture = DNULL;
			m_bFadeColors = DFALSE;
		}

		~CSparksFX()
		{
			if( m_hstrTexture )
				g_pClientDE->FreeString( m_hstrTexture );
		}

		virtual DBOOL CreateObject(CClientDE* pClientDE);
		virtual DBOOL Init(SFXCREATESTRUCT* psfxCreateStruct);
		virtual DBOOL Update();

	private :

		DBOOL AddSparks();

		DVector m_vDir;				// Direction sparks shoot
		DVector m_vColor1;			
		DVector m_vColor2;
		DBYTE	m_nSparks;			// Number of sparks
		DFLOAT	m_fDuration;		// Life time of sparks
		DFLOAT	m_fEmissionRadius;	// How far particles shoot
		HSTRING m_hstrTexture;		// Texture to sprite to use

		DFLOAT	m_fStartTime;		// When did we start
		DBOOL	m_bFadeColors;		// Fade from color1 to color2
};

#endif // __SPARKS_FX_H__

⌨️ 快捷键说明

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