/// <summary> /// Añade un generador estático de fuego /// </summary> /// <param name="particleType">Tipo de partícula</param> /// <param name="obj">Objeto que genera el fuego</param> /// <param name="duration">Duración</param> public void AddParticleGenerator(ParticleSystemTypes particleType, IPhysicObject obj, float duration) { if (particleType != ParticleSystemTypes.None) { this.m_ParticleGenerators.Add(new ParticleGenerator() { Emitter = obj, ParticleType = particleType, Duration = duration }); } }
/// <summary> /// Obtiene la cantidad de partículas en uso del tipo especificado /// </summary> /// <param name="particleType">Tipo de partículas</param> /// <returns>Devuelve el número de partículas en uso</returns> public int GetUsedParticlesCount(ParticleSystemTypes particleType) { if (particleType != ParticleSystemTypes.None) { if (this.m_ParticleDictionary.ContainsKey(particleType)) { return(this.m_ParticleDictionary[particleType].UsedParticles); } } return(0); }
/// <summary> /// Añade una partícula del tipo especificado /// </summary> /// <param name="particleType">Tipo de partícula</param> /// <param name="position">Posición</param> /// <param name="velocity">Velocidad</param> public void AddParticle(ParticleSystemTypes particleType, Vector3 position, Vector3 velocity) { if (particleType != ParticleSystemTypes.None) { if (!this.m_ParticleDictionary.ContainsKey(particleType)) { ParticleSystem particleSystem = new ParticleSystem(this.Game, particleType); particleSystem.DrawOrder = 0; this.Game.Components.Add(particleSystem); this.m_ParticleDictionary.Add(particleType, particleSystem); } this.m_ParticleDictionary[particleType].AddParticle(position, velocity); } }
/// <summary> /// Adds a new particle system to the collection /// </summary> /// <param name="name">Particle system name</param> /// <param name="type">Particle system type</param> /// <param name="description">Particle system description</param> /// <param name="emitter">Particle emitter</param> /// <returns>Returns the new particle system</returns> public IParticleSystem AddParticleSystem(string name, ParticleSystemTypes type, ParticleSystemDescription description, ParticleEmitter emitter) { IParticleSystem pSystem = null; if (type == ParticleSystemTypes.CPU) { pSystem = new ParticleSystemCpu(this.Game, name, description, emitter); } else if (type == ParticleSystemTypes.GPU) { pSystem = new ParticleSystemGpu(this.Game, name, description, emitter); } else { throw new EngineException("Bad particle system type"); } this.AllocatedParticleCount += pSystem.MaxConcurrentParticles; this.ParticleSystems.Add(pSystem); return(pSystem); }
/// <summary> /// Constructor. /// </summary> public ParticleSystem(Game game, ParticleSystemTypes particleType) : base(game) { this.ParticleType = particleType; }
/// <summary> /// Adds a new particle system to the collection /// </summary> /// <param name="type">Particle system type</param> /// <param name="description">Particle system description</param> /// <param name="emitter">Particle emitter</param> /// <returns>Returns the new particle system</returns> public IParticleSystem AddParticleSystem(ParticleSystemTypes type, ParticleSystemDescription description, ParticleEmitter emitter) { return(this.AddParticleSystem(null, type, description, emitter)); }