Пример #1
0
 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;
 }
Пример #2
0
        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);
        }
Пример #3
0
 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;
 }
Пример #4
0
        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;
        }