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

📄 smokepufffx.h

📁 Blood 2全套源码
💻 H
字号:
// ----------------------------------------------------------------------- //
//
// MODULE  : SmokePuffFX.h
//
// PURPOSE : Smoke special fx class - Definition
//
// CREATED : 12/15/97
//
// ----------------------------------------------------------------------- //

#ifndef __SMOKEPUFFFX_H__
#define __SMOKEPUFFFX_H__

#include "BaseParticleSystemFX.h"


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

	DVector vColor1;
	DVector vColor2;
	DVector vMinDriftVel;
	DVector vMaxDriftVel;
	DFLOAT	fDriftDeceleration;
	DVector vPos;
	DFLOAT  fLifeTime;
	DFLOAT  fVolumeRadius;
	DFLOAT	fRadius;
	DFLOAT	fParticleCreateDelta;
	DFLOAT	fMinParticleLife;
	DFLOAT	fMaxParticleLife;
	DFLOAT	fCreateLifetime;
	DFLOAT	fMaxAlpha;
	DBYTE	nNumParticles;
	DBOOL	bIgnoreWind;
	char*	pTexture;
};

inline SMPCREATESTRUCT::SMPCREATESTRUCT()
{
	memset(this, 0, sizeof(SMPCREATESTRUCT));
}

class CSmokePuffFX : public CBaseParticleSystemFX
{
	public :

		CSmokePuffFX() : CBaseParticleSystemFX() 
		{
			m_fStartTime	= -1.0f;
			m_fLastTime		= -1.0f;

			VEC_INIT(m_vColor1);
			VEC_INIT(m_vColor2);
			VEC_INIT(m_vMinDriftVel);
			VEC_INIT(m_vMaxDriftVel);
			m_fDriftDeceleration	= 0.0f;
			m_fVolumeRadius			= 0.0f;
			m_fLifeTime				= 0.0f;
			m_fParticleCreateDelta	= 0.0f;
			m_nNumParticles			= 5;
			m_fMinParticleLife		= 5.0f;
			m_fMaxParticleLife		= 10.0f;
			m_fCreateLifetime		= 0.25f;
			m_fMaxAlpha				= 1.0f;
			m_bIgnoreWind			= DFALSE;
			m_pTexture			    = DNULL;
		}

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

	private :

		DFLOAT	m_fVolumeRadius;// Radius of smoke volume
		DFLOAT	m_fLifeTime;	// How long each particle stays around
		DFLOAT	m_fStartTime;	// When did we start this crazy thing
		DFLOAT	m_fLastTime;	// When did we last create particles
		DFLOAT	m_fFadeTime;	// Time until particles start fading

		DVector	m_vColor1;		// Color of darkest smoke particles
		DVector	m_vColor2;		// Color of lightest smoke particles
		DVector m_vMinDriftVel;	// Min Drift velocity
		DVector m_vMaxDriftVel;	// Max Drift velocity

		DFLOAT	m_fDriftDeceleration;
		DFLOAT  m_fParticleCreateDelta;	// How often we create smoke particles
		DBYTE	m_nNumParticles;		// Number we create every delta
		DFLOAT	m_fMaxParticleLife;		// Maximum lifetime of a particle
		DFLOAT	m_fMinParticleLife;		// Minimum lifetime of a particle
		DFLOAT	m_fMaxAlpha;			// Max value to use for alpha
		DFLOAT	m_fCreateLifetime;		// Percentage of lifetime to create particles
		char*	m_pTexture;				// Texture to sprite to use

		DBOOL	m_bIgnoreWind;			// Ignore world wind
};

#endif // __SMOKEPUFF_H__

⌨️ 快捷键说明

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