Particle.h
资源名称:g.rar [点击查看]
上传用户:laitongbao
上传日期:2021-02-20
资源大小:8176k
文件大小:2k
源码类别:
射击游戏
开发平台:
Visual C++
- // Particle.h: interface for the Particle class.
- //
- //////////////////////////////////////////////////////////////////////
- #include "NodeObject.h"
- #include "Time.h"
- #include "RandGenerator.h"
- #include "VECTOR.h"
- #include "P_Force.h"
- #include "P_Resistance.h"
- #include "utility.h"
- #if !defined(AFX_PARTICLE_H__94E2789A_CDD3_41C3_9BA4_7230C0AA98A9__INCLUDED_)
- #define AFX_PARTICLE_H__94E2789A_CDD3_41C3_9BA4_7230C0AA98A9__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- struct PARTICLE//离子结构
- {
- VECTOR3 pos;//当前离子位置
- VECTOR3 vel;//当前离子速度
- VECTOR3 pos0;//离子的初始位置
- VECTOR3 vel0;//离子的初始速度
- float lifeTime;//离子剩余时间
- float time0;//离子建立的时间
- float size;//离子大小
- PARTICLE* next;//下一个离子对象
- };
- class Particle_Emit:public NodeObject
- {
- friend class P_Force;
- friend class P_Resistance;
- friend class CollisionDetector;
- public:
- Particle_Emit(Particle_Emit& pe);
- Particle_Emit(TCHAR* name ,float particle_size ,float life_time ,TCHAR* texture = NULL,
- DWORD diffuse = 0xffffffff,DWORD fade_color = 0xffffffff,VECTOR3 pos = VECTOR3(),
- float blur_length = 0.02f);
- ~Particle_Emit();
- void Emit(VECTOR3 vel0, int num_particle_to_emit = 1,bool explode = false,float distrube =0);
- void DrawObject();
- void FrameMove();
- void PreDraw();
- void CleanUp();
- void SetSize(float size);
- void SetBlurLength(float len);
- void SetLifeTime(float len);
- float GetSize();
- private:
- void(CALLBACK*processForceFunc)(PARTICLE* p);//用于动力系统的接口
- float particle_size;//大小
- float blur_length;//拖尾长度
- int numParticles;//当前离子数
- int max_numParticles;//最多同时显示离子数
- float life_time;//生命时间
- DWORD diffuse;//离子颜色
- DWORD fade_color;//离子渐隐颜色
- RandGenerator* rand;//随机数产生器
- Timer* timer;//时钟
- PARTICLE * particles;//可见离子
- PARTICLE * freeParticles;//释放的离子,用于循环利用
- IDirect3DVertexBuffer9* localVertex;
- LPDIRECT3DTEXTURE9 particle_texture;// 点贴图
- };
- #endif // !defined(AFX_PARTICLE_H__94E2789A_CDD3_41C3_9BA4_7230C0AA98A9__INCLUDED_)