/// <summary> /// Create a new instance of a Panzer enemy tank. /// </summary> /// <param name="id">Obj id</param> /// <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 Panzer2(uint id, ContentManager content, Vector2 position) : base(id) { this.position = position; spritesheet = content.Load <Texture2D>("Spritesheets/vulcano"); spriteBounds[(int)Panzer2AimState.North].X = 7; spriteBounds[(int)Panzer2AimState.North].Y = 30; spriteBounds[(int)Panzer2AimState.North].Width = 15; spriteBounds[(int)Panzer2AimState.North].Height = 20; spriteBounds[(int)Panzer2AimState.NorthEast].X = 101; spriteBounds[(int)Panzer2AimState.NorthEast].Y = 20; spriteBounds[(int)Panzer2AimState.NorthEast].Width = 17; spriteBounds[(int)Panzer2AimState.NorthEast].Height = 18; spriteBounds[(int)Panzer2AimState.East].X = 121; spriteBounds[(int)Panzer2AimState.East].Y = 36; spriteBounds[(int)Panzer2AimState.East].Width = 20; spriteBounds[(int)Panzer2AimState.East].Height = 14; spriteBounds[(int)Panzer2AimState.SouthEast].X = 101; spriteBounds[(int)Panzer2AimState.SouthEast].Y = 51; spriteBounds[(int)Panzer2AimState.SouthEast].Width = 18; spriteBounds[(int)Panzer2AimState.SouthEast].Height = 16; spriteBounds[(int)Panzer2AimState.South].X = 57; spriteBounds[(int)Panzer2AimState.South].Y = 32; spriteBounds[(int)Panzer2AimState.South].Width = 15; spriteBounds[(int)Panzer2AimState.South].Height = 20; spriteBounds[(int)Panzer2AimState.SouthWest].X = 76; spriteBounds[(int)Panzer2AimState.SouthWest].Y = 51; spriteBounds[(int)Panzer2AimState.SouthWest].Width = 18; spriteBounds[(int)Panzer2AimState.SouthWest].Height = 16; spriteBounds[(int)Panzer2AimState.West].X = 30; spriteBounds[(int)Panzer2AimState.West].Y = 35; spriteBounds[(int)Panzer2AimState.West].Width = 20; spriteBounds[(int)Panzer2AimState.West].Height = 14; spriteBounds[(int)Panzer2AimState.NorthWest].X = 76; spriteBounds[(int)Panzer2AimState.NorthWest].Y = 20; spriteBounds[(int)Panzer2AimState.NorthWest].Width = 18; spriteBounds[(int)Panzer2AimState.NorthWest].Height = 18; aimState = Panzer2AimState.South; }
/// <summary> /// Changes direction the Panzer faces relative to the Player /// </summary> /// <param name="toPlayer">Unit Vector in the direction of the Player</param> public void SteeringState(Vector2 toPlayer) { toPlayer.Normalize(); if ((toPlayer.X < -0.5f) && (toPlayer.Y > 0.5f)) { aimState = Panzer2AimState.SouthWest; } else if ((toPlayer.X < -0.5f) && (toPlayer.Y < -0.5f)) { aimState = Panzer2AimState.NorthWest; } else if ((toPlayer.X > 0.5f) && (toPlayer.Y < -0.5f)) { aimState = Panzer2AimState.NorthEast; } else if ((toPlayer.X > 0.5f) && (toPlayer.Y > 0.5f)) { aimState = Panzer2AimState.SouthEast; } else if (toPlayer.X < -0.5f) { aimState = Panzer2AimState.West; } else if (toPlayer.X > 0.5f) { aimState = Panzer2AimState.East; } else if (toPlayer.Y < -0.5f) { aimState = Panzer2AimState.North; } else { aimState = Panzer2AimState.South; } }
/// <summary> /// Create a new instance of a Panzer enemy tank. /// </summary> /// <param name="id">Obj id</param> /// <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 Panzer2(uint id, ContentManager content, Vector2 position) : base(id) { this.position = position; spritesheet = content.Load<Texture2D>("Spritesheets/vulcano"); photonFired = content.Load<SoundEffect>("SFX/fireworksmortar3"); spriteBounds[(int)Panzer2AimState.North].X = 7; spriteBounds[(int)Panzer2AimState.North].Y = 30; spriteBounds[(int)Panzer2AimState.North].Width = 15; spriteBounds[(int)Panzer2AimState.North].Height = 20; spriteBounds[(int)Panzer2AimState.NorthEast].X = 101; spriteBounds[(int)Panzer2AimState.NorthEast].Y = 20; spriteBounds[(int)Panzer2AimState.NorthEast].Width = 17; spriteBounds[(int)Panzer2AimState.NorthEast].Height = 18; spriteBounds[(int)Panzer2AimState.East].X = 121; spriteBounds[(int)Panzer2AimState.East].Y = 36; spriteBounds[(int)Panzer2AimState.East].Width = 20; spriteBounds[(int)Panzer2AimState.East].Height = 14; spriteBounds[(int)Panzer2AimState.SouthEast].X = 101; spriteBounds[(int)Panzer2AimState.SouthEast].Y = 51; spriteBounds[(int)Panzer2AimState.SouthEast].Width = 18; spriteBounds[(int)Panzer2AimState.SouthEast].Height = 16; spriteBounds[(int)Panzer2AimState.South].X = 57; spriteBounds[(int)Panzer2AimState.South].Y = 32; spriteBounds[(int)Panzer2AimState.South].Width = 15; spriteBounds[(int)Panzer2AimState.South].Height = 20; spriteBounds[(int)Panzer2AimState.SouthWest].X = 76; spriteBounds[(int)Panzer2AimState.SouthWest].Y = 51; spriteBounds[(int)Panzer2AimState.SouthWest].Width = 18; spriteBounds[(int)Panzer2AimState.SouthWest].Height = 16; spriteBounds[(int)Panzer2AimState.West].X = 30; spriteBounds[(int)Panzer2AimState.West].Y = 35; spriteBounds[(int)Panzer2AimState.West].Width = 20; spriteBounds[(int)Panzer2AimState.West].Height = 14; spriteBounds[(int)Panzer2AimState.NorthWest].X = 76; spriteBounds[(int)Panzer2AimState.NorthWest].Y = 20; spriteBounds[(int)Panzer2AimState.NorthWest].Width = 18; spriteBounds[(int)Panzer2AimState.NorthWest].Height = 18; aimState = Panzer2AimState.South; }
/// <summary> /// Changes direction the Panzer faces relative to the Player /// </summary> /// <param name="toPlayer">Unit Vector in the direction of the Player</param> public void SteeringState(Vector2 toPlayer) { toPlayer.Normalize(); if ((toPlayer.X < -0.5f) && (toPlayer.Y > 0.5f)) aimState = Panzer2AimState.SouthWest; else if ((toPlayer.X < -0.5f) && (toPlayer.Y < -0.5f)) aimState = Panzer2AimState.NorthWest; else if ((toPlayer.X > 0.5f) && (toPlayer.Y < -0.5f)) aimState = Panzer2AimState.NorthEast; else if ((toPlayer.X > 0.5f) && (toPlayer.Y > 0.5f)) aimState = Panzer2AimState.SouthEast; else if (toPlayer.X < -0.5f) aimState = Panzer2AimState.West; else if (toPlayer.X > 0.5f) aimState = Panzer2AimState.East; else if (toPlayer.Y < -0.5f) aimState = Panzer2AimState.North; else aimState = Panzer2AimState.South; }