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

📄 axisforcelogic.cpp

📁 这是一款游戏中的粒子系统
💻 CPP
字号:
#include "StdAfx.h"
#include ".\axisforcelogic.h"
#include "Particle.h"
#include "ParticleEmitter.h"


//////////////////////////////////////////////////////////////////////////
/** 轴向外力扰动子 
*	说明请看对应头文件
*/
//////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------
CAxisForceLogic::CAxisForceLogic( CParticleEmitter* parent ) : CParticleAffector(parent)
{
	type=Axis;
	m_strTypename = "NF3D内置的轴向外力扰动子";
	m_strDesc = "使用m_Vec3Array的Slot:0,分别表示xyz三个方向上的初始外力。\n\
		         使用m_FloatArray的Slot:0,表示随xyz远近而导致的外力的衰减。";
	DefaultValue();
}

//------------------------------------------------------------
CAxisForceLogic::~CAxisForceLogic()
{
}


void	CAxisForceLogic::DefaultValue()
{
	if ( m_Vec3Array.empty() )
	{
		// 默认是重力影响,也就是-y方向的恒定加速度
		m_Vec3Array.push_back( D3DXVECTOR3( 0 , -1 , 0 ) );
	}
	else
	{ SetParamVector( 0 , D3DXVECTOR3( 0 , -1 , 0 ) ); }

	if ( m_FloatArray.empty() )
	{
		// 默认无衰减
		m_FloatArray.push_back( 0.0f );
	}
	else
	{ SetParamFloat( 0 , 0.0f ); }
}

//------------------------------------------------------------
bool	CAxisForceLogic::Logic( CParticle* par , float ref )
{

	// 对粒子三个轴向的速度分别施加影响,这个影响将考虑到粒子与粒子初始位置
	par->m_vecVelocity += (m_Vec3Array[0]*ref);
	return true;
}
//------------------------------------------------------------

⌨️ 快捷键说明

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