📄 particlesystem.h
字号:
#pragma once
#include "BaseHeader.h"
#include "Camera.h"
#ifndef FILESIZE
#define FILESIZE 100
#endif
#ifndef Error
#define Error "error"
#endif
#include "CenterForceLogic.h"
#include "BoxCreator.h"
#include "AxisForceLogic.h"
class CParticleEmitter;
class CParticleSystem
{
public:
struct EmitParameter{
string name; //粒子池名称
long productPS;//产生频率
D3DXVECTOR3 relativePos;//相对位置
D3DCOLOR color; //颜色
D3DCOLOR colorVar;
float life; //生命周期
float lifeVar;
float size; //粒子大小
float sizeVar;
D3DXVECTOR3 speedDir; //速度方向
D3DXVECTOR3 speedDirVar;
string texture;
int maxnumber;
float speed;//标量,没有存储在文件中,只是在中间变化起作用
};
public:
CParticleSystem(LPDIRECT3DDEVICE9 device);
virtual ~CParticleSystem();
public:
typedef map< string , CParticleEmitter* > EmitterMap;
typedef vector<EmitParameter> ParameterVector;
EmitterMap m_EmitterMap;
ParameterVector m_ParameterVector;
LPDIRECT3DDEVICE9 m_pDevice;
/** 粒子系统中心位置*/
D3DXVECTOR3 m_vecPosition;
RECT m_renderRect;
D3DXVECTOR3 m_look;
D3DXVECTOR3 m_up;
D3DXVECTOR3 m_cameraDirection;
public:
void SetPosition( const D3DXVECTOR3& pos );
D3DXVECTOR3& GetPosition();
virtual CParticleEmitter* PushEmitter( const string& name , long maxparticle , long emit_ps , float spd , float size , D3DCOLOR clr );
virtual CParticleEmitter* GetEmitter( const string& name );
virtual void SetRenderRect(RECT rect);
virtual RECT GetRenderRect();
virtual long GetEmitterNumber();
virtual void RemoveEmitter( const string& name );
virtual void RemoveEmitter( CParticleEmitter* emit );
virtual void Initialize();
virtual void Update(float fElapsed);
virtual void Render(CCamera *camera);
virtual void Destroy();
virtual void SetActive( bool act );
virtual bool GetActive();
virtual void SetEmitParameter(CParticleEmitter *emit,EmitParameter *parameter);
virtual void Read(char* filename,char* section,char* property,char *value);
virtual void Write(char *filename,char*section,char* property,char* value);
virtual bool InportConfigFile(char *filename);
virtual bool ExportConfigFile(char *filename);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -