Example #1
0
        public override void createParticle()
        {
            SmokeParticle             particle         = new SmokeParticle(base.particleParams);
            ScaleOverTimeEffectParams scaleEffectParms = new ScaleOverTimeEffectParams {
                Reference = particle,
                ScaleBy   = new Vector2(.1f, .075f)
            };

            particle.addEffect(new ScaleOverTimeEffect(scaleEffectParms));
            RotateOverTimeEffectParams rotateEffectParms = new RotateOverTimeEffectParams {
                Reference = particle,
                RotateBy  = 2f
            };

            particle.addEffect(new RotateOverTimeEffect(rotateEffectParms));
            FadeEffectParams fadeEffectParms = new FadeEffectParams {
                Reference           = particle,
                State               = FadeEffect.FadeState.Out,
                TotalTransitionTime = TIME_TO_LIVE,
                OriginalColour      = Color.Black
            };

            particle.addEffect(new FadeEffect(fadeEffectParms));

            base.particles.Add(particle);
            base.createParticle();
        }
        public override void createParticle()
        {
            int nextIndex = -1;

            do
            {
                nextIndex = RANDOM.Next(this.SPAWN_LOCATIONS.Length);
            } while (this.lastUsedIndex == nextIndex);
            this.lastUsedIndex           = nextIndex;
            base.particleParams.Position = this.SPAWN_LOCATIONS[this.lastUsedIndex];
            ConstantSpeedParticle     particle    = new ConstantSpeedParticle(base.particleParams);
            ScaleOverTimeEffectParams effectParms = new ScaleOverTimeEffectParams {
                Reference = particle,
                ScaleBy   = new Vector2(1f)
            };

            particle.addEffect(new ScaleOverTimeEffect(effectParms));
            RotateOverTimeEffectParams rotateEffectParms = new RotateOverTimeEffectParams {
                Reference = particle,
                RotateBy  = 2f
            };

            particle.addEffect(new RotateOverTimeEffect(rotateEffectParms));
            FadeEffectParams fadeEffectParms = new FadeEffectParams {
                Reference           = particle,
                State               = FadeEffect.FadeState.Out,
                TotalTransitionTime = TIME_TO_LIVE,
                OriginalColour      = COLOUR
            };

            particle.addEffect(new FadeEffect(fadeEffectParms));

            base.particles.Add(particle);
            base.createParticle();
        }
        public override void createParticle()
        {
            int   positionX = this.RANDOM.Next(MAX_RANGE_FROM_EMITTER);
            int   positionY = this.RANDOM.Next(MAX_RANGE_FROM_EMITTER);
            int   directionX = this.RANDOM.Next(2);
            int   directionY = this.RANDOM.Next(2);
            float x, y;

            if (directionX == 0)
            {
                x = PlayerPosition.X + positionX;
            }
            else
            {
                x = PlayerPosition.X - positionX;
            }

            if (directionY == 0)
            {
                y = PlayerPosition.Y + positionY;
            }
            else
            {
                y = PlayerPosition.Y - positionY;
            }

            base.particleParams.Position = new Vector2(x, y);
            BaseParticle2D            particle = new BaseParticle2D(base.particleParams);
            ScaleOverTimeEffectParams effectParms = new ScaleOverTimeEffectParams {
                Reference = particle,
                ScaleBy   = new Vector2(.5f)
            };

            particle.addEffect(new ScaleOverTimeEffect(effectParms));
            RotateOverTimeEffectParams rotateEffectParms = new RotateOverTimeEffectParams {
                Reference = particle,
                RotateBy  = 2f
            };

            particle.addEffect(new RotateOverTimeEffect(rotateEffectParms));
            FadeEffectParams fadeEffectParms = new FadeEffectParams {
                Reference           = particle,
                State               = FadeEffect.FadeState.Out,
                TotalTransitionTime = TIME_TO_LIVE,
                OriginalColour      = COLOUR
            };

            particle.addEffect(new FadeEffect(fadeEffectParms));
            base.particles.Add(particle);
            base.createParticle();
        }
Example #4
0
        public void createParticle(Vector2 position)
        {
            base.particleParams.Position = position;
            SmokeParticle             particle    = new SmokeParticle(base.particleParams);
            ScaleOverTimeEffectParams effectParms = new ScaleOverTimeEffectParams {
                Reference = particle,
                ScaleBy   = new Vector2(1f)
            };

            particle.addEffect(new ScaleOverTimeEffect(effectParms));

            FadeEffectParams fadeEffectParms = new FadeEffectParams {
                Reference           = particle,
                State               = FadeEffect.FadeState.Out,
                TotalTransitionTime = TIME_TO_LIVE,
                OriginalColour      = Color.White
            };

            particle.addEffect(new FadeEffect(fadeEffectParms));

            base.particles.Add(particle);
            base.createParticle();
        }
Example #5
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();
        }
Example #6
0
        public HUD(ContentManager content)
        {
            SpriteFont   font  = LoadingUtils.load <SpriteFont>(content, "SpriteFont1");
            Text2DParams parms = new Text2DParams();

            parms.Font        = font;
            parms.LightColour = Color.Red;

            parms.Position    = new Vector2(Constants.RESOLUTION_X / 3, 450f);
            parms.WrittenText = TEXT_RESTART;
            this.statusText   = new Text2D(parms);

            ColourLerpEffectParams effectParms = new ColourLerpEffectParams {
                LerpBy     = 5f,
                LerpDownTo = Color.White,
                LerpUpTo   = Color.Red
            };

            int size = 1;

            if (StateManager.getInstance().GameMode == GameMode.TwoPlayer)
            {
                size = 2;
            }
            this.scoreTexts  = new Text2D[size];
            this.winnerTexts = new Text2D[size];

            parms.Position     = new Vector2(RIGHT_X, SCORES_Y);
            parms.WrittenText  = TEXT_SCORE + getScore(0);
            this.scoreTexts[0] = new Text2D(parms);
            this.scoreTexts[0].addEffect(new ColourLerpEffect(effectParms));

            parms.Position      = new Vector2(RIGHT_X + WINNER_X_PADDING, SCORES_Y + WINNER_Y_OFFSET);
            parms.WrittenText   = TEXT_WINNER;
            this.winnerTexts[0] = new Text2D(parms);
            this.winnerTexts[0].addEffect(new ColourLerpEffect(effectParms));

            if (StateManager.getInstance().GameMode == GameMode.TwoPlayer)
            {
                parms.Position     = new Vector2(LEFT_X, SCORES_Y);
                parms.WrittenText  = TEXT_SCORE + getScore(1);
                this.scoreTexts[1] = new Text2D(parms);
                this.scoreTexts[1].addEffect(new ColourLerpEffect(effectParms));

                parms.Position      = new Vector2(LEFT_X + WINNER_X_PADDING, SCORES_Y + WINNER_Y_OFFSET);
                parms.WrittenText   = TEXT_WINNER;
                this.winnerTexts[1] = new Text2D(parms);
                this.winnerTexts[1].addEffect(new ColourLerpEffect(effectParms));
            }

            this.countDownImages = new StaticDrawable2D[3];
            StaticDrawable2DParams countDownParms = new StaticDrawable2DParams {
                Position = new Vector2(Constants.RESOLUTION_X / 2, Constants.RESOLUTION_Y / 2),
                Origin   = new Vector2(256f),
            };

            for (int i = 0; i < this.countDownImages.Length; i++)
            {
                countDownParms.Texture  = LoadingUtils.load <Texture2D>(content, (i + 1).ToString());
                this.countDownImages[i] = new StaticDrawable2D(countDownParms);
            }

            StaticDrawable2DParams gameOverParms = new StaticDrawable2DParams {
                Position = new Vector2(Constants.RESOLUTION_X / 2, Constants.RESOLUTION_Y / 2),
                Origin   = new Vector2(512f),
                Texture  = LoadingUtils.load <Texture2D>(content, "GameOver")
            };

            this.gameOver = new StaticDrawable2D(gameOverParms);

            scaleOverTimeEffectParms = new ScaleOverTimeEffectParams {
                ScaleBy = new Vector2(-1f)
            };

            this.soundEffect = LoadingUtils.load <SoundEffect>(content, "ShortBeep");

            this.index = 2;
            this.activeCountdownItem = this.countDownImages[this.index];
            this.activeCountdownItem.addEffect(new ScaleOverTimeEffect(scaleOverTimeEffectParms));
            this.elapsedTime = 0f;
            SoundManager.getInstance().SFXEngine.playSoundEffect(this.soundEffect);
        }
 /// <summary>
 /// Constructs a ScaleOverTimeEffect
 /// </summary>
 /// <param name="parms">ScaleOverTimeEffectParams object</param>
 public ScaleOverTimeEffect(ScaleOverTimeEffectParams parms) : base(parms)
 {
     this.ScaleBy = parms.ScaleBy;
 }