public GameplayScreen(ScreensComponent manager) : base(manager) { phyWorld = new World(Vector2.Zero); powerupMgr = new Powerups.PowerupManager(phyWorld, this); fireParticles = new Particles.FireParticleSystem(manager.Game, Content); fireParticles.Initialize(); }
public GameOverScreen(ScreensComponent manager, bool blueWins) : base(manager) { blue = blueWins; rand = new Random(); timeToNextFirework = 1; elapsedSeconds = 0; fireworksParticles = new Particles.FireworksParticleSystem(manager.Game, Content, blue); fireworksParticles.Initialize(); }
public Base(World world, Vector2 position, bool isVertical, Particles.ParticleSystem fire) : base(world) { health = isVertical ? 20 : 40; vertical = isVertical; warning = 0; fireParticles = fire; Position = position / 100; BodyType = BodyType.Static; Rotation = 0; if (vertical) FixtureFactory.AttachRectangle(texV.Width / 100f, texV.Height / 100f, 1, Vector2.Zero, this); else FixtureFactory.AttachRectangle(texH.Width / 100f, texH.Height / 100f, 1, Vector2.Zero, this); OnCollision += (fA, fB, c) => { if (!(fB.Body is Projectile)) return true; var p = (Projectile)fB.Body; if (p.Damage == 0) return true; damage += p.Damage; hitSnd.Play(0.2f, -p.Damage / 20f, 0); fireParticles.AddParticle(new Vector3(p.Position.X * 100 - 512, 0, p.Position.Y * 100 - 384), Vector3.Zero, p.Damage * 2 + 8); if (damage >= health) { var pos = new Vector3(position.X - 512, 0, position.Y - 384); if (vertical) pos.Z -= texV.Height / 2f; else pos.X -= texH.Width / 2f; for (int i = 0; vertical && i <= texV.Height || !vertical && i <= texH.Width; i+=2) { fireParticles.AddParticle(pos, Vector3.Zero); if (vertical) pos.Z += 2; else pos.X += 2; } } return true; }; }
public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; // Construct our particle system components. explosionParticles = new Particles.ParticleSystems.ExplosionParticleSystem(this, Content); explosionSmokeParticles = new Particles.ParticleSystems.ExplosionSmokeParticleSystem(this, Content); projectileTrailParticles = new Particles.ParticleSystems.ProjectileTrailParticleSystem(this, Content); smokePlumeParticles = new Particles.ParticleSystems.SmokePlumeParticleSystem(this, Content); fireParticles = new Particles.ParticleSystems.FireParticleSystem(this, Content); fireParticles.Interval = 3f; projectileTrailParticles.Interval = 2.5f; smokePlumeParticles.Interval = 3f; // Set the draw order so the explosions and fire // will appear over the top of the smoke. smokePlumeParticles.DrawOrder = 100; explosionSmokeParticles.DrawOrder = 200; projectileTrailParticles.DrawOrder = 300; explosionParticles.DrawOrder = 400; fireParticles.DrawOrder = 500; // Register the particle system components. Components.Add(explosionParticles); Components.Add(explosionSmokeParticles); Components.Add(projectileTrailParticles); Components.Add(smokePlumeParticles); Components.Add(fireParticles); }
public Concept() : base() { ps = Particles.ParticleManager.CreateParticleSystem(Particles.ParticleManager.defaultParticle); m_backgroundSprite = content.Load<Texture2D>("Images/levelbackground"); m_playerSprite = content.Load<Texture2D>("Images/playergreen"); m_enemySprite = content.Load<Texture2D>("Images/littleship"); m_crosshairSprite = content.Load<Texture2D>("Images/crosshair"); m_lineSprite = content.Load<Texture2D>("Images/line"); m_playerOne = new ConceptPlayer(); m_missleEnemyList = new List<ConceptMissileEnemy>(); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(100, 200))); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(700, 250))); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(300, 450))); m_seekerEnemyList = new List<ConceptSeekerEnemy>(); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(110, 250))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(210, 150))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(710, 400))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(510, 350))); }
public ConceptMissileEnemy(Vector2 position) { m_facingDirection = new Vector2(); rng = Globals.m_rng; m_position = position; m_rotationAngle = 0.0f; m_spriteScale = 0.25f; m_dimensions = new Vector2(74, 70) * m_spriteScale; m_origin = (m_dimensions / 2.0f) / m_spriteScale; m_seekPosition = new Vector2(0, 0); m_seeking = false; m_speed = 150.0f; m_detectionRadius = new Circle(m_position, 128); m_collisionRadius = new Circle(m_position, m_dimensions.X / 2); m_dying = false; m_dead = false; #region PARTICLE SYSTEM m_line = AIE.GameStateManager.Game.Content.Load<Texture2D>("Images/line"); m_deathExplosion = Particles.ParticleManager.CreateParticleSystem(m_line); m_deathExplosion.rate = 0.01f; m_deathExplosion.startColor = Color.White; m_deathExplosion.endColor = Color.Red; m_deathExplosion.normColor = 0.5f; m_deathExplosion.spawnArea = 3f; m_deathExplosion.spawnAngle = 6.28f; m_deathExplosion.lifeTime = new Particles.Range(0.4f, 1.2f); m_deathCooldown = 2.0f; m_deathExplosion.startSpeed = new Particles.Range(10.0f, 300.0f); m_deathExplosion.endSpeed = new Particles.Range(0.0f, 0.0f); #endregion t = new Texture2D(AIE.GameStateManager.Game.GraphicsDevice, 1, 1); t.SetData(new[] { Color.White }); }
public ConceptBullets(Vector2 position, float rotation, Vector2 facingDir) { m_position = position; m_rotationAngle = rotation; m_facingDirection = facingDir; //m_facingDirection = new Vector2((float)Math.Sin(m_rotationAngle), -(float)Math.Cos(m_rotationAngle)); m_spriteScale = 1f; m_dimensions = new Vector2(8, 8) * m_spriteScale; m_origin = (m_dimensions / 2.0f) / m_spriteScale; m_collisionRadius = new Circle(m_position, m_dimensions.X / 2); m_speed = 950.0f; m_dying = false; m_dead = false; #region PARTICLE SYSTEM m_line = AIE.GameStateManager.Game.Content.Load<Texture2D>("Images/line"); m_deathExplosion = Particles.ParticleManager.CreateParticleSystem(m_line); m_deathExplosion.rate = 0.01f; m_deathExplosion.startColor = Color.White; m_deathExplosion.endColor = Color.Blue; m_deathExplosion.normColor = 0.5f; m_deathExplosion.spawnArea = 3f; m_deathExplosion.spawnAngle = 6.28f; m_deathExplosion.lifeTime = new Particles.Range(0.4f, 1.2f); m_deathCooldown = 2.0f; m_deathExplosion.startSpeed = new Particles.Range(10.0f, 100.0f); m_deathExplosion.endSpeed = new Particles.Range(0.0f, 0.0f); #endregion t = new Texture2D(AIE.GameStateManager.Game.GraphicsDevice, 1, 1); t.SetData(new[] { Color.White }); }
public Concept() : base() { ps = Particles.ParticleManager.CreateParticleSystem(Particles.ParticleManager.defaultParticle); m_backgroundSprite = content.Load<Texture2D>("Images/LevelBackground"); m_playerSprite = content.Load<Texture2D>("Images/PlayerGreen"); m_enemySprite = content.Load<Texture2D>("Images/littleship"); m_crosshairSprite = content.Load<Texture2D>("Images/crosshair"); m_lineSprite = content.Load<Texture2D>("Images/line"); m_redExplosionSpriteSheet = content.Load<Texture2D>("Images/red3"); m_redExplosionAnimation = new TextureAtlas.AnimatedSprite(m_redExplosionSpriteSheet, 5, 16); m_playerOne = new ConceptPlayer(); m_missleEnemyList = new List<ConceptMissileEnemy>(); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(100, 200))); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(700, 250))); m_missleEnemyList.Add(new ConceptMissileEnemy(new Vector2(300, 450))); m_seekerEnemyList = new List<ConceptSeekerEnemy>(); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(110, 250))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(210, 150))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(710, 400))); m_seekerEnemyList.Add(new ConceptSeekerEnemy(new Vector2(510, 350))); }