Пример #1
0
        /// <summary>
        /// Constructs a new particle emitter object.
        /// </summary>
        public XParticleEmitter(ref XMain X, XParticleSystem particleSystem,
                                float particlesPerSecond, Vector3 initialPosition) : base(ref X)
        {
            this.particleSystem = particleSystem;

            timeBetweenParticles = 1.0f / particlesPerSecond;

            previousPosition = initialPosition;
        }
Пример #2
0
        /// <summary>
        /// Constructs a new projectile.
        /// </summary>
        public XProjectile(ref XMain X, XParticleSystem explosionParticles,
                           XParticleSystem explosionSmokeParticles,
                           XParticleSystem projectileTrailParticles) : base(ref X)
        {
            this.explosionParticles      = explosionParticles;
            this.explosionSmokeParticles = explosionSmokeParticles;

            // Start at the origin, firing in a random (but roughly upward) direction.
            position = Vector3.Zero;

            velocity.X = (float)(random.NextDouble() - 0.5) * sidewaysVelocityRange;
            velocity.Y = (float)(random.NextDouble() + 0.5) * verticalVelocityRange;
            velocity.Z = (float)(random.NextDouble() - 0.5) * sidewaysVelocityRange;

            // Use the particle emitter helper to output our trail particles.
            trailEmitter = new XParticleEmitter(ref X, projectileTrailParticles,
                                                trailParticlesPerSecond, position);
        }