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 + -
显示快捷键?