/// <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>(); }
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); }
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); }
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; }
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); }
protected override void initVisuals() { base.initVisuals(); BaseParticle2DEmitterParams parms = new BaseParticle2DEmitterParams() { ParticleTexture = LoadingUtils.load <Texture2D>(content, "bloodDrop"), SpawnDelay = 0f }; emitters.Add(new BloodEmitter(parms, position)); }
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; }
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; }
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; }
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; }
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); }
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); }
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); }
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); } }
/// <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; }