示例#1
0
        /// <summary>
        /// Creates a new instance of the Alien Turret
        /// </summary>
        /// <param name="content">A ContentManager to load resources with</param>
        /// <param name="position">The position of the Alien Turret in the game world</param>
        public AlienTurret(uint id, ContentManager content, Vector2 position)
            : base(id)
        {
            this.position = position;
            phase = AlienTurretPhase.Wait;
            Health = MAX_HEALTH;

            spritesheet = content.Load<Texture2D>("Spritesheets/newshh.shp.000000");

            spriteBounds[(int)AlienTurretAnimation.Open].X = 48;
            spriteBounds[(int)AlienTurretAnimation.Open].Y = 0;
            spriteBounds[(int)AlienTurretAnimation.Open].Width = 48;
            spriteBounds[(int)AlienTurretAnimation.Open].Height = 56;

            spriteBounds[(int)AlienTurretAnimation.Mid].X = 96;
            spriteBounds[(int)AlienTurretAnimation.Mid].Y = 0;
            spriteBounds[(int)AlienTurretAnimation.Mid].Width = 48;
            spriteBounds[(int)AlienTurretAnimation.Mid].Height = 56;

            spriteBounds[(int)AlienTurretAnimation.Closed].X = 144;
            spriteBounds[(int)AlienTurretAnimation.Closed].Y = 0;
            spriteBounds[(int)AlienTurretAnimation.Closed].Width = 48;
            spriteBounds[(int)AlienTurretAnimation.Closed].Height = 56;

            frame = 0;
            animationSequence = new List<AlienTurretAnimation>();
            animationSequence.Add(AlienTurretAnimation.Open);
            animationSequence.Add(AlienTurretAnimation.Mid);
            animationSequence.Add(AlienTurretAnimation.Closed);
        }
示例#2
0
        /// <summary>
        /// Creates a new instance of the Alien Turret
        /// </summary>
        /// <param name="content">A ContentManager to load resources with</param>
        /// <param name="position">The position of the Alien Turret in the game world</param>
        public AlienTurret(uint id, ContentManager content, Vector2 position)
            : base(id)
        {
            this.position = position;
            phase         = AlienTurretPhase.Wait;
            Health        = MAX_HEALTH;

            spritesheet = content.Load <Texture2D>("Spritesheets/newshh.shp.000000");

            spriteBounds[(int)AlienTurretAnimation.Open].X      = 48;
            spriteBounds[(int)AlienTurretAnimation.Open].Y      = 0;
            spriteBounds[(int)AlienTurretAnimation.Open].Width  = 48;
            spriteBounds[(int)AlienTurretAnimation.Open].Height = 56;

            spriteBounds[(int)AlienTurretAnimation.Mid].X      = 96;
            spriteBounds[(int)AlienTurretAnimation.Mid].Y      = 0;
            spriteBounds[(int)AlienTurretAnimation.Mid].Width  = 48;
            spriteBounds[(int)AlienTurretAnimation.Mid].Height = 56;

            spriteBounds[(int)AlienTurretAnimation.Closed].X      = 144;
            spriteBounds[(int)AlienTurretAnimation.Closed].Y      = 0;
            spriteBounds[(int)AlienTurretAnimation.Closed].Width  = 48;
            spriteBounds[(int)AlienTurretAnimation.Closed].Height = 56;

            frame             = 0;
            animationSequence = new List <AlienTurretAnimation>();
            animationSequence.Add(AlienTurretAnimation.Open);
            animationSequence.Add(AlienTurretAnimation.Mid);
            animationSequence.Add(AlienTurretAnimation.Closed);
        }
示例#3
0
        /// <summary>
        /// Updates the Pinchers
        /// </summary>
        /// <param name="elapsedTime">The in-game time between the previous and current frame</param>
        public override void Update(float elapsedTime)
        {
            Health--;
            timer += elapsedTime;
            if (Health <= 0)
            {
                phase = AlienTurretPhase.Dead;
            }

            switch (phase)
            {
            case AlienTurretPhase.Wait:
                if (timer >= 1)
                {
                    timer = 0;
                    phase = AlienTurretPhase.Opening;
                }
                break;

            case AlienTurretPhase.Opening:
                if (timer >= .2)
                {
                    timer = 0;
                    if (frame <= 1)
                    {
                        frame++;
                    }
                    else
                    {
                        phase = AlienTurretPhase.Firing;
                    }
                }
                break;

            case AlienTurretPhase.Firing:
                if (timer >= .2)
                {
                    timer = 0;
                    ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.AlienTurretOrb, position);
                    phase = AlienTurretPhase.Closing;
                }
                break;

            case AlienTurretPhase.Closing:
                if (timer >= .2)
                {
                    timer = 0;
                    if (frame >= 1)
                    {
                        frame--;
                    }
                    else
                    {
                        phase = AlienTurretPhase.Wait;
                    }
                }
                break;
            }
        }
示例#4
0
        /// <summary>
        /// Updates the Pinchers
        /// </summary>
        /// <param name="elapsedTime">The in-game time between the previous and current frame</param>
        public override void Update(float elapsedTime)
        {
            Health--;
            timer += elapsedTime;
            if (Health <= 0)
                phase = AlienTurretPhase.Dead;

            switch (phase)
            {
                case AlienTurretPhase.Wait:
                    if (timer >= 1)
                    {
                        timer = 0;
                        phase = AlienTurretPhase.Opening;
                    }
                    break;

                case AlienTurretPhase.Opening:
                    if (timer >= .2)
                    {
                        timer = 0;
                        if (frame <= 1)
                            frame++;
                        else
                            phase = AlienTurretPhase.Firing;
                    }
                    break;

                case AlienTurretPhase.Firing:
                    if (timer >= .2)
                    {
                        timer = 0;
                       ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.AlienTurretOrb, position);
                        phase = AlienTurretPhase.Closing;
                    }
                    break;

                case AlienTurretPhase.Closing:
                    if (timer >= .2)
                    {
                        timer = 0;
                        if (frame >= 1)
                            frame--;
                        else
                        {

                            phase = AlienTurretPhase.Wait;
                        }
                    }
                    break;
            }
        }
示例#5
0
 public void ReviveTurret()
 {
     Health = MAX_HEALTH;
     phase = AlienTurretPhase.Wait;
 }
示例#6
0
 public void ReviveTurret()
 {
     Health = MAX_HEALTH;
     phase  = AlienTurretPhase.Wait;
 }