public override void createParticle() {
			if (Emitt) {
				float x = RANDOM.Next(0, 180);
				if (RANDOM.Next(0, 2) == 1) {
					x = -x;
				}
				float y = RANDOM.Next(0, 180);
				if (RANDOM.Next(0, 2) == 1) {
					y = -y;
				}
				float rotation = (float)Math.Atan2(x, -y);

				BaseParticle2DParams particleParms = new BaseParticle2DParams();
				particleParms.TimeToLive = 1000;
				particleParms.Texture = base.particleTexture;
				particleParms.Scale = new Vector2(.75f);
				particleParms.Position = this.position;
				particleParms.Origin = new Vector2(Constants.TILE_SIZE / 2);
				particleParms.Direction = new Vector2(x, y);
				particleParms.Acceleration = new Vector2(.15f);
				particleParms.Rotation = rotation;
				particleParms.LightColour = Color.White;


				ConstantSpeedParticle particle = new ConstantSpeedParticle(particleParms);
				base.particles.Add(particle);
				base.createParticle();
			}
		}
Exemple #2
0
        public SmokeParticleEmitter(ContentManager content, BaseParticle2DEmitterParams parms)
            : base(parms)
        {
            BaseParticle2DParams particleParms = new BaseParticle2DParams();

            particleParms.Origin     = new Vector2(16f);
            particleParms.Texture    = parms.ParticleTexture;
            particleParms.TimeToLive = TIME_TO_LIVE;
            base.particleParams      = particleParms;
        }
 /// <summary>
 /// Builds the base particle
 /// </summary>
 /// <param name="parms">BaseParticle2DParams object containing the data required to build the particle</param>
 public BaseParticle2D(BaseParticle2DParams parms)
     : base(parms)
 {
     this.timeAlive        = 0f;
     this.timeToLive       = parms.TimeToLive;
     this.originalPosition = parms.Position;
     this.direction        = parms.Direction;
     this.acceleration     = parms.Acceleration;
     this.texture          = parms.Texture;
     base.setRenderingRectByTexture(this.texture);
 }
        public DustParticleEmitter(BaseParticle2DEmitterParams parms)
            : base(parms)
        {
            BaseParticle2DParams particleParams = new BaseParticle2DParams();

            particleParams.Scale       = new Vector2(.25f);
            particleParams.Origin      = new Vector2(32f, 32f);
            particleParams.Texture     = parms.ParticleTexture;
            particleParams.LightColour = COLOUR;
            particleParams.TimeToLive  = TIME_TO_LIVE;
            base.particleParams        = particleParams;
        }
        public QuestionMarkEmitter(BaseParticle2DEmitterParams parms)
            : base(parms)
        {
            BaseParticle2DParams particleParams = new BaseParticle2DParams();

            particleParams.Scale        = new Vector2(.5f);
            particleParams.Origin       = new Vector2(32f, 32f);
            particleParams.Texture      = parms.ParticleTexture;
            particleParams.LightColour  = COLOUR;
            particleParams.TimeToLive   = TIME_TO_LIVE;
            particleParams.Direction    = MOVEMENT_SPEED;
            particleParams.Acceleration = new Vector2(1f);
            base.particleParams         = particleParams;
        }
        public ExplosionParticleEmitter(ContentManager content, BaseParticle2DEmitterParams parms)
            : base(parms)
        {
            this.PARTICLE_TEXTURES = new Texture2D[5];
            for (int i = 1; i <= this.PARTICLE_TEXTURES.Length; i++)
            {
                this.PARTICLE_TEXTURES[i - 1] = LoadingUtils.load <Texture2D>(content, "ExplosionParticle" + i);
            }
            BaseParticle2DParams particleParams = new BaseParticle2DParams();

            particleParams.Scale       = new Vector2(.5f);
            particleParams.Origin      = new Vector2(16f);
            particleParams.LightColour = Color.White;
            particleParams.TimeToLive  = TIME_TO_LIVE;
            base.particleParams        = particleParams;
        }
Exemple #7
0
        public SmokeEmitter(BaseParticle2DEmitterParams parms)
            : base(parms)
        {
            this.elapsedEmittingTime = 0f;
            this.smoking             = true;
            BaseParticle2DParams particleParams = new BaseParticle2DParams();

            particleParams.Scale       = new Vector2(.25f, .25f);
            particleParams.Position    = new Vector2(1199f, 122f);
            particleParams.Origin      = new Vector2(32f, 32f);
            particleParams.Texture     = this.particleTexture;
            particleParams.LightColour = Color.Black;
            particleParams.TimeToLive  = TIME_TO_LIVE;
            particleParams.Direction   = MOVEMENT_SPEED;
            base.particleParams        = particleParams;
        }
Exemple #8
0
        public override void createParticle()
        {
            Vector2 heading = HEADINGS[base.RANDOM.Next(HEADINGS.Length)];

            BaseParticle2DParams particleParms = new BaseParticle2DParams();

            particleParms.TimeToLive   = 500;
            particleParms.Origin       = this.origin;
            particleParms.Texture      = base.particleTexture;
            particleParms.Scale        = new Vector2(.5f);
            particleParms.Position     = this.position;
            particleParms.Direction    = heading;
            particleParms.Acceleration = new Vector2(25f, 35f);

            ConstantSpeedParticle     particle    = new ConstantSpeedParticle(particleParms);
            ScaleOverTimeEffectParams effectParms = new ScaleOverTimeEffectParams {
                ScaleBy = new Vector2(1.75f)
            };

            particle.addEffect(new ScaleOverTimeEffect(effectParms));

            if (this.sway)
            {
                PulseDirection  direction       = EnumUtils.numberToEnum <PulseDirection>(base.RANDOM.Next(2));
                SwayEffectParms swayEffectParms = new SwayEffectParms {
                    SwayBy     = new Vector2(50f, 0f),
                    SwayDownTo = -5f,
                    SwayUpTo   = 5f,
                    Direction  = direction
                };
                particle.addEffect(new SwayEffect(swayEffectParms));
            }
            SoundManager.getInstance().playSoundEffect(this.sfxEmitter, this.idleSFX);
            base.particles.Add(particle);

            base.createParticle();
        }
        public DeathParticleEmitter(BaseParticle2DEmitterParams parms, Vector2 position, Vector2 heading, List <Texture2D> characterTextures)
            : base(parms)
        {
            this.position = position;
            BaseParticle2DParams particleParms = new BaseParticle2DParams();

            particleParms.TimeToLive   = 350;
            particleParms.Acceleration = new Vector2(100f);
            particleParms.Direction    = heading;
            particleParms.Origin       = new Vector2(Constants.TILE_SIZE);
            particleParms.Texture      = parms.ParticleTexture;
            base.particleParams        = particleParms;

            // create additional effects
            for (int i = 0; i < 20; i++)
            {
                createParticle();
            }

            particleParms.Scale    = new Vector2(.5f);
            particleParms.Position = position;
            FadeEffectParams       effectParms = null;
            DeacceleratingParticle particle    = null;

            foreach (Texture2D texture in characterTextures)
            {
                particleParms.Texture = texture;
                particle    = new DeacceleratingParticle(particleParms);
                effectParms = new FadeEffectParams {
                    OriginalColour      = Color.White,
                    State               = FadeEffect.FadeState.Out,
                    TotalTransitionTime = Constants.DEATH_DURATION
                };
                particle.addEffect(new FadeEffect(effectParms));
                base.particles.Add(particle);
            }
        }
Exemple #10
0
 /// <summary>
 /// Constructs an Deaccelerating particle
 /// </summary>
 /// <param name="parms">BaseParticle2DParms object</param>
 public DeacceleratingParticle(BaseParticle2DParams parms) : base(parms)
 {
 }
Exemple #11
0
 public SmokeParticle(BaseParticle2DParams parms)
     : base(parms)
 {
 }
Exemple #12
0
 public ExplosionParticle(BaseParticle2DParams parms)
     : base(parms)
 {
 }
 /// <summary>
 /// Constructs a particle that moves in a constant speed
 /// </summary>
 /// <param name="parms"></param>
 public ConstantSpeedParticle(BaseParticle2DParams parms) : base(parms)
 {
 }