public Fighter() : base() { if (AeroGame.lagTest) texture = AeroGame.LoadTextureStream("Fighter"); else texture = AeroGame.ContentManager.Load<Texture2D>("Textures\\Fighter"); textureData = new Color[texture.Width * texture.Height]; texture.GetData(textureData); soundFireBullet = AeroGame.ContentManager.Load<SoundEffect>("Sounds\\EnemyLaser"); origin = new Vector2(texture.Width / 2, texture.Height / 2); health = maxHealth = 30; mainWeapon = new StandardCannon(false); mainWeapon.SetCoolDown(1.0f); firingAngle = -MathHelper.Pi / 2; }
public static void Update(TimeSpan elapsedTime) { dt = elapsedTime; Position = new Vector2(position.X, position.Y); primaryWeapon.Update(elapsedTime); secondaryWeapon.Update(elapsedTime); if (invincible && !powerUpActive) { resetInvincibilityCooldown -= (float)elapsedTime.TotalSeconds; if (resetInvincibilityCooldown < 0) { invincible = false; resetInvincibilityCooldown = 1.0f; } } primaryWeapon.Center = center; secondaryWeapon.Center = center; if (exploding) { if (explodingAnimation.Active) explodingAnimation.Update(elapsedTime); else { exploding = false; } } if (reviving) { if (reviveAnimation.Active) reviveAnimation.Update(elapsedTime); else { reviving = false; ReviveReset(); } } if (powerUpCooldown > 0) { powerUpCooldown -= (float) elapsedTime.TotalSeconds; if (powerUpCooldown <= 0) { powerUpCooldown = 0; powerUpType = PowerUpType.None; primaryWeapon = standardCannon; primaryWeapon.SetCoolDown(0.2f); powerUpActive = false; } } if (rapidFireCooldown > 0) { rapidFireCooldown -= (float)elapsedTime.TotalSeconds; if (rapidFireCooldown <= 0) { rapidFireCooldown = 0; primaryWeapon.SetCoolDown(0.2f); } } if (invincibilityCooldown > 0) { invincibilityCooldown -= (float)elapsedTime.TotalSeconds; if (invincibilityCooldown <= 0) { invincibilityCooldown = 0; invincible = false; } } rotation = Matrix.CreateTranslation(new Vector3(-origin, 0.0f)) * Matrix.CreateRotationZ(theta) * Matrix.CreateTranslation(new Vector3(position, 0.0f)); boundingRectangle = CalculateBoundingRectangle(new Rectangle(0, 0, texture.Width, texture.Height), rotation); }
private static void ReviveReset() { resetInvincibilityCooldown = 1.0f; invincible = true; revivalExpansionValue = 1; CurrentShield = maxShield; position = startingPosition; primaryWeapon.Center = center; alive = true; //Reset PowerUp powerUpCooldown = 0; powerUpType = PowerUpType.None; primaryWeapon = standardCannon; primaryWeapon.SetCoolDown(0.2f); powerUpActive = false; }
public static void LoadContent() { texture = AeroGame.ContentManager.Load<Texture2D>("Textures\\Player"); textureInvincible = AeroGame.ContentManager.Load<Texture2D>("Textures\\PlayerGlow"); textureData = new Color[texture.Width * texture.Height]; texture.GetData(textureData); soundFireBullet = AeroGame.ContentManager.Load<SoundEffect>("Sounds\\PlayerLaser"); soundFireBomb = AeroGame.ContentManager.Load<SoundEffect>("Sounds\\Bomb"); soundHit = AeroGame.ContentManager.Load<SoundEffect>("Sounds\\PlayerHit"); soundKill = AeroGame.ContentManager.Load<SoundEffect>("Sounds\\PlayerKill"); position = startingPosition = new Vector2(AeroGame.Graphics.GraphicsDevice.Viewport.Width / 2 - texture.Width / 2.0f, AeroGame.Graphics.GraphicsDevice.Viewport.Height * .75f); center = new Vector2(position.X + texture.Width / 2.0f, position.Y + texture.Height / 2.0f); origin = new Vector2(texture.Width / 2, texture.Height / 2); speed = 200.0f; velocity = new Vector2(speed); alive = true; reviving = false; exploding = false; invincible = false; powerUpActive = false; resetInvincibilityCooldown = 1.0f; powerUpCooldown = 0; rapidFireCooldown = 0; invincibilityCooldown = 0; lives = 3; mainWeaponPower = 10; currentShield = 30; maxShield = 30; percentShield = (int)((currentShield / maxShield) * 100); powerUpType = PowerUpType.None; standardCannon = new StandardCannon(true); triCannon = new TriCannon(true); quintuCannon = new QuintuCannon(true); primaryWeapon = standardCannon; primaryWeapon.SetCoolDown(0.2f); fragCannon = new FragmentationBombCannon(true); beamCannon = new BeamCannon(true); missileCannon = new MissleCannon(true); secondaryWeapon = fragCannon; explodingAnimation = new SmallExplosionAnimation(); reviveAnimation = new ReviveAnimation(); dt = TimeSpan.Zero; theta = 0; spriteBatch = new SpriteBatch(AeroGame.Graphics.GraphicsDevice); rotation = new Matrix(); boundingRectangle = new Rectangle(); scale = 1; //Bounding Rectangle Data leftTop = Vector2.Zero; rightTop = Vector2.Zero; leftBottom = Vector2.Zero; rightBottom = Vector2.Zero; min = Vector2.Zero; max = Vector2.Zero; stringMainWeaponPower = mainWeaponPower.ToString(); stringShield = percentShield.ToString() + "%"; stringLives = "x" + lives.ToString(); //saveData = new SaveGameData(); //SignedInGamer gamer; //saveData.playerName = Gamer.SignedInGamers[0].Gamertag; }