boxcreator.cpp

来自「这是一款游戏中的粒子系统」· C++ 代码 · 共 45 行

CPP
45
字号
#include "StdAfx.h"
#include ".\boxcreator.h"
#include "Particle.h"
#include "ParticleEmitter.h"
//////////////////////////////////////////////////////////////////////////
/** 立方体粒子产生子
*	请查看对应头文件
*/
//////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------
CBoxCreator::CBoxCreator( CParticleEmitter* parent ) : CParticleAffector(parent)
{
	type=Box;
	DefaultValue();
}



//------------------------------------------------------------
void	CBoxCreator::DefaultValue()
{
	if ( m_Vec3Array.empty() )
	{
		// 默认是不使用Box生成
		m_Vec3Array.push_back( D3DXVECTOR3( 0 , 0 , 0 ));
		m_Vec3Array.push_back( D3DXVECTOR3( 0 , 0 , 0 ));
	}
	else
	{
		SetParamVector( 0 , D3DXVECTOR3( 0 , 0 , 0 ) );
		SetParamVector( 1 , D3DXVECTOR3( 0 , 0 , 0 ) );
	}
}

//------------------------------------------------------------
bool	CBoxCreator::Create( CParticle* par )
{
	par->m_vecPosition.x = m_pParentEmitter->GetInterpolatePos().x + RangeRandom( m_Vec3Array[0].x , m_Vec3Array[1].x );
	par->m_vecPosition.y = m_pParentEmitter->GetInterpolatePos().y + RangeRandom( m_Vec3Array[0].y , m_Vec3Array[1].y );
	par->m_vecPosition.z = m_pParentEmitter->GetInterpolatePos().z + RangeRandom( m_Vec3Array[0].z , m_Vec3Array[1].z );
	par->m_vecInitPosition = par->m_vecPosition;
	return true;
}
//------------------------------------------------------------

⌨️ 快捷键说明

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