예제 #1
0
        /// <summary>
        /// Creates a new instance of a LavaFighter enemy ship
        /// </summary>
        /// <param name="content">A ContentManager to load resources with</param>
        /// <param name="position">The position of the Dart ship in the game world</param>
        public LavaFighter(uint id, ContentManager content, Vector2 position)
            : base(id)
        {
            this.position = position;
            this.Score = 18;

            spritesheet = content.Load<Texture2D>("Spritesheets/newshe.shp.000000");
            bulletFired = content.Load<SoundEffect>("SFX/gamalaser");

            spriteBounds[(int)LavaFighterSteeringState.Left].X = 76;
            spriteBounds[(int)LavaFighterSteeringState.Left].Y = 197;
            spriteBounds[(int)LavaFighterSteeringState.Left].Width = 20;
            spriteBounds[(int)LavaFighterSteeringState.Left].Height = 28;

            spriteBounds[(int)LavaFighterSteeringState.Straight].X = 51;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Y = 197;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Width = 20;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Height = 28;

            spriteBounds[(int)LavaFighterSteeringState.Right].X = 28;
            spriteBounds[(int)LavaFighterSteeringState.Right].Y = 197;
            spriteBounds[(int)LavaFighterSteeringState.Right].Width = 20;
            spriteBounds[(int)LavaFighterSteeringState.Right].Height = 28;

            steeringState = LavaFighterSteeringState.Straight;
        }
예제 #2
0
        /// <summary>
        /// Updates the LavaFighter ship
        /// </summary>
        /// <param name="elapsedTime">The in-game time between the previous and current frame</param>
        public override void Update(float elapsedTime)
        {
            gunTimer += elapsedTime;

            // Sense the player's position
            PlayerShip player         = ScrollingShooterGame.Game.Player;
            Vector2    playerPosition = new Vector2(player.Bounds.Center.X, player.Bounds.Center.Y);


            // Get a vector from our position to the player's position
            Vector2 toPlayer = playerPosition - this.position;

            this.position.Y += elapsedTime * 100;

            if (toPlayer.LengthSquared() < 60000)
            {
                // We sense the player's ship!
                // Get a normalized steering vector
                toPlayer.Normalize();

                // Change the steering state to reflect our direction
                if (toPlayer.X < -0.5f)
                {
                    steeringState = LavaFighterSteeringState.Left;
                    //Fire!
                    if (gunTimer > .7f)
                    {
                        ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.ToPlayerBullet, position);
                        gunTimer = 0f;
                    }
                }
                else if (toPlayer.X > 0.5f)
                {
                    steeringState = LavaFighterSteeringState.Right;
                    //Fire!
                    if (gunTimer > .7f)
                    {
                        ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.ToPlayerBullet, position);
                        gunTimer = 0f;
                    }
                }
                else
                {
                    steeringState = LavaFighterSteeringState.Straight;
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Creates a new instance of a LavaFighter enemy ship
        /// </summary>
        /// <param name="content">A ContentManager to load resources with</param>
        /// <param name="position">The position of the Dart ship in the game world</param>
        public LavaFighter(uint id, ContentManager content, Vector2 position)
            : base(id)
        {
            this.position = position;

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

            spriteBounds[(int)LavaFighterSteeringState.Left].X      = 76;
            spriteBounds[(int)LavaFighterSteeringState.Left].Y      = 197;
            spriteBounds[(int)LavaFighterSteeringState.Left].Width  = 20;
            spriteBounds[(int)LavaFighterSteeringState.Left].Height = 28;

            spriteBounds[(int)LavaFighterSteeringState.Straight].X      = 51;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Y      = 197;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Width  = 20;
            spriteBounds[(int)LavaFighterSteeringState.Straight].Height = 28;

            spriteBounds[(int)LavaFighterSteeringState.Right].X      = 28;
            spriteBounds[(int)LavaFighterSteeringState.Right].Y      = 197;
            spriteBounds[(int)LavaFighterSteeringState.Right].Width  = 20;
            spriteBounds[(int)LavaFighterSteeringState.Right].Height = 28;

            steeringState = LavaFighterSteeringState.Straight;
        }
예제 #4
0
        /// <summary>
        /// Updates the LavaFighter ship
        /// </summary>
        /// <param name="elapsedTime">The in-game time between the previous and current frame</param>
        public override void Update(float elapsedTime)
        {
            gunTimer += elapsedTime;

            // Sense the player's position
            PlayerShip player = ScrollingShooterGame.Game.Player;
            Vector2 playerPosition = new Vector2(player.Bounds.Center.X, player.Bounds.Center.Y);

            // Get a vector from our position to the player's position
            Vector2 toPlayer = playerPosition - this.position;
            this.position.Y += elapsedTime * 100;

            if (toPlayer.LengthSquared() < 60000)
            {
                // We sense the player's ship!
                // Get a normalized steering vector
                toPlayer.Normalize();

                // Change the steering state to reflect our direction
                if (toPlayer.X < -0.5f)
                {
                    steeringState = LavaFighterSteeringState.Left;
                    //Fire!
                    if (gunTimer > .7f)
                    {
                        ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.ToPlayerBullet, position);
                        gunTimer = 0f;
                        bulletFired.Play();
                    }
                }
                else if (toPlayer.X > 0.5f)
                {
                    steeringState = LavaFighterSteeringState.Right;
                    //Fire!
                    if (gunTimer > .7f)
                    {
                        ScrollingShooterGame.GameObjectManager.CreateProjectile(ProjectileType.ToPlayerBullet, position);
                        gunTimer = 0f;
                        bulletFired.Play();
                    }
                }
                else
                    steeringState = LavaFighterSteeringState.Straight;
            }
        }