Exemplo n.º 1
0
 /// <summary>
 /// Builds the base particle emitter
 /// </summary>
 /// <param name="parms">BaseParticle2DEmitterParams object containing the data required to build the particle emitter</param>
 public BaseParticle2DEmitter(BaseParticle2DEmitterParams parms)
 {
     this.elapsedSpawnTime = parms.SpawnDelay;
     this.particleTexture  = parms.ParticleTexture;
     this.spawnDelay       = parms.SpawnDelay;
     this.RANDOM           = new Random();
     this.particles        = new List <BaseParticle2D>();
 }
Exemplo n.º 2
0
        protected override void createIdleEmitter()
        {
            BaseParticle2DEmitterParams emitterParms = new BaseParticle2DEmitterParams();

            emitterParms.ParticleTexture = LoadingUtils.load <Texture2D>(content, "Heart");
            emitterParms.SpawnDelay      = 150f;
            base.idleEmitter             = new ConstantSpeedParticleEmitter(emitterParms, base.Position, new Vector2(Constants.TILE_SIZE / 2, Constants.TILE_SIZE), base.idleSFX,
                                                                            IDLE_SFX_EMIT_RADIUS);
        }
Exemplo n.º 3
0
        protected override void createIdleEmitter()
        {
            Vector2 origin = new Vector2(Constants.TILE_SIZE, Constants.TILE_SIZE * 2);
            BaseParticle2DEmitterParams emitterParms = new BaseParticle2DEmitterParams();

            emitterParms.ParticleTexture = LoadingUtils.load <Texture2D>(content, "Bawk");
            emitterParms.SpawnDelay      = 4000f;

            base.idleEmitter = new ConstantSpeedParticleEmitter(emitterParms, base.Position, origin, base.idleSFX, IDLE_SFX_EMIT_RADIUS, false);
        }
Exemplo n.º 4
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;
        }
Exemplo n.º 5
0
        public virtual void handleCollision(Vector2 heading)
        {
            this.LifeStage = Stage.Dying;
            BaseParticle2DEmitterParams parms = new BaseParticle2DEmitterParams();

            parms.ParticleTexture = this.deathParticleTexture;
            this.deathEmitter     = new DeathParticleEmitter(parms, base.Position, heading, this.dyingCharacterTextures);
            PositionGenerator.getInstance().markPosition(base.Position);
            base.init(null);
        }
Exemplo n.º 6
0
        protected override void initVisuals()
        {
            base.initVisuals();
            BaseParticle2DEmitterParams parms = new BaseParticle2DEmitterParams()
            {
                ParticleTexture = LoadingUtils.load <Texture2D>(content, "bloodDrop"),
                SpawnDelay      = 0f
            };

            emitters.Add(new BloodEmitter(parms, position));
        }
Exemplo n.º 7
0
        public Wall(ContentManager content, Vector2 position)
            : base(content)
        {
            Texture2D texture = null;

            texture = LoadingUtils.load <Texture2D>(content, "Fence");

            StaticDrawable2DParams wallParams = new StaticDrawable2DParams {
                Position = position,
                Texture  = texture,
                Scale    = new Vector2(.5f),
                Origin   = new Vector2(Constants.TILE_SIZE)
            };

            this.idleImage = new StaticDrawable2D(wallParams);

            Animated2DSpriteLoadSingleRowBasedOnTexture parms = new Animated2DSpriteLoadSingleRowBasedOnTexture();
            BaseAnimationManagerParams animationParms         = new BaseAnimationManagerParams();

            animationParms.AnimationState  = AnimationState.PlayForwardOnce;
            animationParms.FrameRate       = 100f;
            animationParms.TotalFrameCount = 3;
            parms.Position        = position;
            parms.Scale           = new Vector2(.25f);
            parms.Texture         = LoadingUtils.load <Texture2D>(content, "FenceOpening");
            parms.Origin          = new Vector2(Constants.TILE_SIZE);
            parms.AnimationParams = animationParms;
            this.spawnSprite      = new Animated2DSprite(parms);
            base.init(spawnSprite);

            BaseParticle2DEmitterParams emitterParams = new BaseParticle2DEmitterParams()
            {
                ParticleTexture = LoadingUtils.load <Texture2D>(content, "Dust"),
            };

            this.dustEmitter = new DustParticleEmitter(emitterParams, base.Position);
            for (int i = 0; i < 5; i++)
            {
                this.dustEmitter.createParticle();
            }

            this.crumpleSFX = LoadingUtils.load <SoundEffect>(content, SFX_NAME_CRUMPLE);
            SoundEmitterParams sfxEmitterParms = new SoundEmitterParams {
                SFXEngine   = SoundManager.getInstance().SFXEngine,
                EmittRadius = SFX_EMITT_RADIUS,
                Position    = this.spawnSprite.Position
            };

            this.sfxEmitter = new SoundEmitter(sfxEmitterParms);
            SoundManager.getInstance().addEmitter(this.sfxEmitter);
            SoundManager.getInstance().playSoundEffect(this.sfxEmitter, this.crumpleSFX);
            this.stage = Stage.Opening;
        }
        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;
        }
Exemplo n.º 9
0
        public GameDisplay(ContentManager content)
        {
            this.content = content;
            this.timer   = new Timer(content);

            ColouredButtonParams buttonParms = new ColouredButtonParams();

            buttonParms.Font            = ResourceManager.getInstance().Font;
            buttonParms.Height          = 25;
            buttonParms.LinesTexture    = ResourceManager.getInstance().ButtonLineTexture;
            buttonParms.MouseOverColour = ResourceManager.MOUSE_OVER_COLOUR;
            buttonParms.RegularColour   = ResourceManager.TEXT_COLOUR;
            buttonParms.StartX          = 700;
            buttonParms.Width           = 75;
            buttonParms.StartY          = 557;

            // start button
            buttonParms.Text          = "Start";
            buttonParms.TextsPosition = new Vector2(711f, buttonParms.StartY - 2f);
            this.startButton          = new ColouredButton(buttonParms);

            // HUD
            Text2DParams textParms = new Text2DParams();

            textParms.Font        = ResourceManager.getInstance().Font;
            textParms.LightColour = ResourceManager.TEXT_COLOUR;
            textParms.Position    = new Vector2(727f, 150f);
            this.treasureText     = new Text2D(textParms);

            StaticDrawable2DParams staticParms = new StaticDrawable2DParams();

            staticParms          = new StaticDrawable2DParams();
            staticParms.Position = new Vector2(702f, 148f);
            staticParms.Texture  = LoadingUtils.load <Texture2D>(content, "Treasure1");
            this.treasure        = new StaticDrawable2D(staticParms);

            //dust particle emitter
            BaseParticle2DEmitterParams particleEmitterParams = new BaseParticle2DEmitterParams();

            particleEmitterParams.ParticleTexture = LoadingUtils.load <Texture2D>(content, "Dust1");
            particleEmitterParams.SpawnDelay      = DustParticleEmitter.SPAWN_DELAY;
            this.dustEmitter = new DustParticleEmitter(particleEmitterParams);

            // load sound effects
            this.introSfx         = LoadingUtils.load <SoundEffect>(content, LEVEL_ENTRY_SFX_NAME);
            this.payDaySfx        = LoadingUtils.load <SoundEffect>(content, "PayDay");
            this.treasureSfx      = LoadingUtils.load <SoundEffect>(content, "TreasureCollect");
            this.guardDetectedSfx = LoadingUtils.load <SoundEffect>(content, "GuardDetection");
            this.dumpsterCrashSfx = LoadingUtils.load <SoundEffect>(content, "DumpsterCrash");
            this.dumpsterCloseSfx = LoadingUtils.load <SoundEffect>(content, "DumpsterClose");
        }
        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;
        }
Exemplo n.º 11
0
        public House(ContentManager content)
        {
            Texture2D houseTexture             = LoadingUtils.load <Texture2D>(content, "House");
            StaticDrawable2DParams houseParams = new StaticDrawable2DParams();

            houseParams.Texture  = houseTexture;
            houseParams.Position = new Vector2(1000f, 100f);
            this.house           = new StaticDrawable2D(houseParams);

            BaseParticle2DEmitterParams particleEmitterParams = new BaseParticle2DEmitterParams();

            particleEmitterParams.ParticleTexture = LoadingUtils.load <Texture2D>(content, "Smoke1");
            particleEmitterParams.SpawnDelay      = SmokeEmitter.SPAWN_DELAY;
            this.chimneySmokeEmitter = new SmokeEmitter(particleEmitterParams);
        }
        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;
        }
Exemplo n.º 13
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;
        }
Exemplo n.º 14
0
        public Portal(ContentManager content, Random rand) : base(content)
        {
            this.lifeStage = Stage.Spawn;

            Animated2DSpriteLoadSingleRowBasedOnTexture parms = new Animated2DSpriteLoadSingleRowBasedOnTexture();
            BaseAnimationManagerParams animationParms         = new BaseAnimationManagerParams();

            animationParms.AnimationState  = AnimationState.PlayForward;
            animationParms.FrameRate       = 100f;
            animationParms.TotalFrameCount = 7;
            parms.Position        = PositionGenerator.getInstance().generateSpawn();
            parms.Texture         = LoadingUtils.load <Texture2D>(content, "PortalOpen");
            parms.Origin          = new Vector2(Constants.TILE_SIZE);
            parms.AnimationParams = animationParms;
            this.idleSprite       = new Animated2DSprite(parms);

            animationParms.AnimationState  = AnimationState.PlayForwardOnce;
            animationParms.TotalFrameCount = 6;
            parms.AnimationParams          = animationParms;
            parms.Texture    = LoadingUtils.load <Texture2D>(content, "PortalSpawn");
            parms.Position   = new Vector2(parms.Position.X, parms.Position.Y);
            this.spawnSprite = new Animated2DSprite(parms);

            base.init(this.spawnSprite);

            BaseParticle2DEmitterParams emitterParams = new BaseParticle2DEmitterParams {
                ParticleTexture = LoadingUtils.load <Texture2D>(content, "Lightning"),
                SpawnDelay      = 500f
            };

            this.lightningEmitter = new LightningParticleEmitter(emitterParams, parms.Position);

            this.spawnSFX   = LoadingUtils.load <SoundEffect>(content, SPAWN_SFX_NAME);
            this.idleSFX    = LoadingUtils.load <SoundEffect>(content, IDLE_SFX_NAME);
            this.closingSFX = LoadingUtils.load <SoundEffect>(content, CLOSING_SFX_NAME);

            SoundEmitterParams sfxEmitterParms = new SoundEmitterParams {
                SFXEngine   = SoundManager.getInstance().SFXEngine,
                EmittRadius = SFX_EMITT_RADIUS,
                Position    = this.spawnSprite.Position
            };

            this.sfxEmitter = new SoundEmitter(sfxEmitterParms);
            SoundManager.getInstance().addEmitter(this.sfxEmitter);
            SoundManager.getInstance().playSoundEffect(this.sfxEmitter, this.spawnSFX);
        }
Exemplo n.º 15
0
        public ConstantSpeedParticleEmitter(BaseParticle2DEmitterParams parms, Vector2 position, Vector2 origin, SoundEffect idleSFX, float emittRadius, bool sway = true)
            : base(parms)
        {
            this.position = position;
            this.origin   = origin;
            this.sway     = sway;
            this.idleSFX  = idleSFX;

            SoundEmitterParams sfxEmitterParms = new SoundEmitterParams {
                EmittRadius = emittRadius,
                Position    = this.position,
                SFXEngine   = SoundManager.getInstance().SFXEngine
            };

            this.sfxEmitter = new SoundEmitter(sfxEmitterParms);
            SoundManager.getInstance().addEmitter(this.sfxEmitter);
        }
Exemplo n.º 16
0
        public InGameMenu(ContentManager content)
        {
            ColouredButtonParams buttonParms = new ColouredButtonParams();

            buttonParms.Font            = ResourceManager.getInstance().Font;
            buttonParms.Height          = 25;
            buttonParms.LinesTexture    = ResourceManager.getInstance().ButtonLineTexture;
            buttonParms.MouseOverColour = ResourceManager.MOUSE_OVER_COLOUR;
            buttonParms.RegularColour   = ResourceManager.TEXT_COLOUR;
            buttonParms.StartX          = 580;
            buttonParms.Width           = 205;

            // play button
            buttonParms.StartY        = 515;
            buttonParms.Text          = "Return to Game";
            buttonParms.TextsPosition = new Vector2(610f, buttonParms.StartY - 2f);
            this.returnToGameButton   = new ColouredButton(buttonParms);

            // exit button
            buttonParms.StartY        = 557;
            buttonParms.Text          = "Exit To Main Menu";
            buttonParms.TextsPosition = new Vector2(590f, buttonParms.StartY - 2);
            this.exitToMainButton     = new ColouredButton(buttonParms);

            // title
            StaticDrawable2DParams staticParms = new StaticDrawable2DParams();

            staticParms.Position = new Vector2(0f, 0f);
            staticParms.Texture  = LoadingUtils.load <Texture2D>(content, "Paused");
            this.title           = new StaticDrawable2D(staticParms);

            // background
            staticParms.Position = new Vector2(-10f, 0f);
            staticParms.Texture  = LoadingUtils.load <Texture2D>(content, "InGameMenu");
            this.backGround      = new StaticDrawable2D(staticParms);

            // setup the particle emitter
            BaseParticle2DEmitterParams particleEmitterParams = new BaseParticle2DEmitterParams();

            particleEmitterParams.ParticleTexture = LoadingUtils.load <Texture2D>(content, "QuestionParticle");
            particleEmitterParams.SpawnDelay      = QuestionMarkEmitter.SPAWN_DELAY;
            this.particleEmitter = new QuestionMarkEmitter(particleEmitterParams);
        }
Exemplo n.º 17
0
        public Nuke(ContentManager content, SFXEngine sfxEngine)
        {
            int frames = 6;
            BaseAnimationManagerParams animationParms = new BaseAnimationManagerParams();

            animationParms.AnimationState  = AnimationState.PlayForward;
            animationParms.FrameRate       = 100f;
            animationParms.TotalFrameCount = frames;
            BaseAnimated2DSpriteParams spriteParms = new Animated2DSpriteLoadSingleRowBasedOnTexture();

            spriteParms.Position        = new Vector2(-200f);
            spriteParms.Rotation        = 0f;
            spriteParms.Origin          = new Vector2(32f);
            spriteParms.Scale           = new Vector2(.75f);
            spriteParms.Texture         = LoadingUtils.load <Texture2D>(content, "NukeSprite");
            spriteParms.AnimationParams = animationParms;

            this.bomb  = new Animated2DSprite(spriteParms);
            this.State = SpriteState.InActive;
            this.textureColourDatas = new List <Color[, ]>();
            Rectangle frame;

            for (int i = 0; i < frames; i++)
            {
                frame = this.bomb.Frames[i];
                this.textureColourDatas.Add(
                    TextureUtils.getColourData2D(this.bomb.Texture, startX: frame.X, width: frame.X + frame.Width));
            }

            // Smoke emitter
            BaseParticle2DEmitterParams particleEmitterParms = new BaseParticle2DEmitterParams();

            particleEmitterParms.ParticleTexture = LoadingUtils.load <Texture2D>(content, "Smoke");
            particleEmitterParms.SpawnDelay      = SmokeParticleEmitter.SPAWN_DELAY;
            this.emitter = new SmokeParticleEmitter(content, particleEmitterParms);

            // sfx
            this.sfxEngine = sfxEngine;
        }
        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);
            }
        }
Exemplo n.º 19
0
 /// <summary>
 /// Builds the auto particle emitter
 /// </summary>
 /// <param name="parms">BaseParticle2DEmitterParams object containing the data required to build the particle emitter</param>
 public AutoParticle2DEmitter(BaseParticle2DEmitterParams parms)
     : base(parms)
 {
 }
		public LightningParticleEmitter(BaseParticle2DEmitterParams parms, Vector2 position)
			: base(parms) {
			this.position = position;
			this.Emitt = true;
		}