From 78138dc8e08cebff3b8630cab5b54951061844b8 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 7 Nov 2018 07:48:43 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E6=94=B9=E7=B2=92=E5=AD=90=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Graphics/particles/je_particle_emitter.h | 33 +++++++++++++++------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'src/libjin/Graphics/particles/je_particle_emitter.h') diff --git a/src/libjin/Graphics/particles/je_particle_emitter.h b/src/libjin/Graphics/particles/je_particle_emitter.h index 5ffbdf2..34d0ee4 100644 --- a/src/libjin/Graphics/particles/je_particle_emitter.h +++ b/src/libjin/Graphics/particles/je_particle_emitter.h @@ -41,6 +41,9 @@ namespace JinEngine } direction; }; + /// + /// How many particles emitted per second. + /// struct EmitRateDef { bool enableRandom = false; @@ -65,6 +68,8 @@ namespace JinEngine EmitRateDef emitRateDef; ///< Emit rate. }; + class ParticleSystem; + /// /// Emit a single particle. /// @@ -72,23 +77,31 @@ namespace JinEngine { public: /// - /// ParticleEmitter constructor. - /// - /// @param emitterDef Definition of particle emitter. - /// @param particleDef Definition of particle. /// - ParticleEmitter(const ParticleEmitterDef& emitterDef, const ParticleDef& particleDef); + /// + ParticleEmitter(ParticleSystem& ps); + + /// + /// + /// + void update(float dt); + + private: + /// + /// + /// + ParticleSystem& mParticleSystem; /// /// Emit a particle according to emitter definition and particle definition, particle system should /// assign particle value to the particle in particle pool, but not use this return particle. /// - Particle emit(); + void emit(const ParticleEmitterDef& emitterDef, const ParticleDef& def, Particle& particle); - private: - float mDirection; - ParticleEmitterDef mEmitterDef; - ParticleDef mParticleDef; + /// + /// + /// + float mTime; }; -- cgit v1.1-26-g67d0