public Console(ContentManager content, Ship aShip, int anXShift, int aYShift, Texture2D img) { xShift = anXShift; yShift = aYShift; position.X = aShip.GetPosition().X + (float)xShift; position.Y = aShip.GetPosition().Y + (float)yShift; texture = img; consoleRec = new Rectangle((int)position.X, (int)position.Y, texture.Width, texture.Height); }
public Turret(ContentManager content, Ship aShip, int anXShift, int aYShift) { xShift = anXShift; yShift = aYShift; position.X = aShip.GetPosition().X + (float)xShift; position.Y = aShip.GetPosition().Y + (float)yShift; Texture = content.Load<Texture2D>(@"Sprites/turret"); conTexture = content.Load<Texture2D>(@"Sprites/console"); rec = new Rectangle((int)position.X, (int)position.Y, conTexture.Width, conTexture.Height); shipPos.X = aShip.GetPosition().X; shipPos.Y = aShip.GetPosition().Y; rotation = 0.0f; origin = new Vector2(Texture.Width / 2, Texture.Height / 2); prevMouseState = Mouse.GetState(); localVector = new Vector2(0, position.Y - shipPos.Y); }
public Laser(ContentManager content, Ship aShip, int anXShift, int aYShift) { xShift = anXShift; yShift = aYShift; position.X = aShip.GetPosition().X + (float)xShift; position.Y = aShip.GetPosition().Y + (float)yShift; Texture = content.Load<Texture2D>(@"Sprites/lazer"); conTexture = content.Load<Texture2D>(@"Sprites/console"); rec = new Rectangle((int)position.X, (int)position.Y, conTexture.Width, conTexture.Height); laserRect = new Rectangle((int)position.X, (int)position.Y, Texture.Width, Texture.Height); shipPos.X = aShip.GetPosition().X; shipPos.Y = aShip.GetPosition().Y; rotation = 0f; origin = new Vector2(Texture.Width / 2, Texture.Height / 2); prevMouseState = Mouse.GetState(); localVector = new Vector2(0, position.Y - shipPos.Y - 55); shouldUpdate = false; clockWise = false; }
public Shield(ContentManager content, Ship aShip, int anXShift, int aYShift) { xShift = anXShift; yShift = aYShift; consolePosition.X = aShip.GetPosition().X + (float)xShift; consolePosition.Y = aShip.GetPosition().Y + (float)yShift; shipPos.X = aShip.GetPosition().X; shipPos.Y = aShip.GetPosition().Y; consoleTexture = content.Load<Texture2D>(@"Sprites/shieldConsole"); consoleRec = new Rectangle((int)consolePosition.X, (int)consolePosition.Y, consoleTexture.Width, consoleTexture.Height); position.X = aShip.GetPosition().X + 0f; position.Y = aShip.GetPosition().Y - 165f; shieldTexture = content.Load<Texture2D>(@"Sprites/shield"); rotation = 0f; origin = new Vector2(shieldTexture.Width / 2, shieldTexture.Height / 2); shouldUpdate = false; clockWise = false; localVector = new Vector2(0, position.Y - shipPos.Y ); }
public void Update(Ship ship) { float ChaseThreshold = ChaseDistance; float CaughtThreshold = CaughtDistance; float distanceFromShip = Vector2.Distance(Position, ship.GetPosition()); if (Orientation < TurnToFace(Position, ship.GetPosition(), Orientation, TurnSpeed) && Orientation > TurnToFace(Position, ship.GetPosition(), Orientation, TurnSpeed)) { state = State.Shooting; fakeTime++; } if(state == State.Shooting && fakeTime == 10) { Shoot(); fakeTime = 0; } if (distanceFromShip > EvadeDistance + Hysteresis) { state = State.Wander; } else if (distanceFromShip < EvadeDistance - Hysteresis) { state = State.Evading; } if (state == State.Evading) { Vector2 seekPosition = 2.5f * Position - ship.GetPosition(); Orientation = TurnToFace(Position, seekPosition, Orientation, TurnSpeed); currentSpeed = MathHelper.Min(currentSpeed++, MaxSpeed); } if (state == State.Chasing) { ChaseThreshold += Hysteresis / 2; CaughtThreshold -= Hysteresis / 2; } else { Wander(Position, ref WanderDirection, ref Orientation, TurnSpeed); currentSpeed = .35f * MaxSpeed; } for (int i = 0; i < bullets.Count; i++) bullets[i].Update(); for (int i = 0; i < bullets.Count; i++) { if (bullets[i].Outside()) bullets.RemoveAt(i); } Rectangle shiprec = new Rectangle((int)ship.GetPosition().X - 190, (int)ship.GetPosition().Y - 190, ship.shipRing.Width, ship.shipRing.Height); for (int i = 0; i < bullets.Count; i++) { if (shiprec.Intersects(new Rectangle((int)bullets[i].Position.X, (int)bullets[i].Position.Y, bullets[i].texture.Width, bullets[i].texture.Height))) { bullets.RemoveAt(i); ship.Hurt(); } } heading = new Vector2((float)Math.Cos(Orientation), (float)Math.Sin(Orientation)); Position += heading * currentSpeed; }
private void Teleport(Ship ship) { Position = new Vector2(random.Next(1850), random.Next(950)); while (Vector2.Distance(Position, ship.GetPosition()) < 240f) { Position = new Vector2(random.Next(1850), random.Next(950)); } }
public void Update(Ship ship) { if (state == State.Shooting) { timeInShoot++; timeInTele = 0; Orientation = TurnToFace(Position, ship.GetPosition(), Orientation, TurnSpeed); if (timeInShoot == 50) Shoot(); if (timeInShoot > 150) state = State.Telport; } else if (state == State.Telport) { timeInShoot = 0; timeInTele++; if (timeInTele == 30) { Teleport(ship); state = State.Shooting; } } heading = new Vector2((float)Math.Cos(Orientation), (float)Math.Sin(Orientation)); for (int i = 0; i < bullets.Count; i++) bullets[i].Update(); for (int i = 0; i < bullets.Count; i++) if (bullets[i].Outside()) bullets.RemoveAt(i); Rectangle shiprec = new Rectangle((int)ship.GetPosition().X - 190, (int)ship.GetPosition().Y - 190, ship.shipRing.Width, ship.shipRing.Height); for (int i = 0; i < bullets.Count; i++) { if (shiprec.Intersects(new Rectangle((int)bullets[i].Position.X, (int)bullets[i].Position.Y, bullets[i].texture.Width, bullets[i].texture.Height))) bullets.RemoveAt(i); } }
private void GameSetUp() { lives = 3; ship = new Ship(Content, graphics); playerCnt = 1; shift = new Vector2(0, 0); player = new Player(new Vector2(ship.GetPosition().X, ship.GetPosition().Y - 100), Content, 1); bluePlanet = new Planet(Content); gasPlanet = new Planet(Content, 1); aquaGasPlanet = new Planet(Content, 2); marblePlanet = new Planet(Content, 3); ps.Add(bluePlanet); ps.Add(gasPlanet); ps.Add(aquaGasPlanet); ps.Add(marblePlanet); ees.Clear(); ecs.Clear(); ets.Clear(); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1800, -400, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1700, 100, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1800, -50, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1650, 280, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1450, 500, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), -1820, 450, marblePlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 3600, 1800, aquaGasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 3000, 1800, aquaGasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 3600, 1500, aquaGasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 2500, -400, gasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 2300, -500, gasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 2000, -600, gasPlanet)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 2500, -700, gasPlanet)); ets.Add(new EnemyTeleport(Content, new Vector2(1900, 950))); ets.Add(new EnemyTeleport(Content, new Vector2(1900, 950))); //ets.Add(new EnemyTeleport(Content, new Vector2(1900, 950))); }
private void GameSetUp(int playerAmnt) { ship = new Ship(Content, graphics); player = new Player(new Vector2(ship.GetPosition().X, ship.GetPosition().Y - 100), Content, 1); playerCnt = playerAmnt; if(playerAmnt > 1) player2 = new Player(new Vector2(ship.GetPosition().X-70, ship.GetPosition().Y - 110), Content, 2); ees.Clear(); ecs.Clear(); ets.Clear(); //ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 20, 30)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 800, 30)); ecs.Add(new EnemyChaser(Content, new Vector2(1900, 950))); ets.Add(new EnemyTeleport(Content, new Vector2(1900, 950))); }
private void GameSetUp() { lives = 3; ship = new Ship(Content, graphics); playerCnt = 1; player = new Player(new Vector2(ship.GetPosition().X, ship.GetPosition().Y - 100), Content, 1); ees.Clear(); ecs.Clear(); ets.Clear(); //ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 20, 30)); ees.Add(new EnemyEvader(Content, new Vector2(1900, 950), 800, 30)); ecs.Add(new EnemyChaser(Content, new Vector2(1900, 950))); ecs.Add(new EnemyChaser(Content, new Vector2(1900, 950))); ecs.Add(new EnemyChaser(Content, new Vector2(1900, 950))); ecs.Add(new EnemyChaser(Content, new Vector2(1900, 950))); ets.Add(new EnemyTeleport(Content, new Vector2(1900, 950))); }
public void Update(Ship ship) { float ChaseThreshold = ChaseDistance; float CaughtThreshold = CaughtDistance; if (state == State.Wander) { ChaseThreshold -= Hysteresis / 2; } else if (state == State.Chasing) { ChaseThreshold += Hysteresis / 2; CaughtThreshold -= Hysteresis / 2; } else if (state == State.Caught) { CaughtThreshold += Hysteresis / 2; } float distanceFromCat = Vector2.Distance(Position, ship.GetPosition()); if (distanceFromCat > ChaseThreshold) { state = State.Wander; } else if (distanceFromCat > CaughtThreshold) { state = State.Chasing; } else { state = State.Caught; } float currentSpeed; if (state == State.Chasing) { // the wants to chase the cat, so it will just use the TurnToFace // function to turn towards the cat's position. Then, when the // moves forward, he will chase the cat. Orientation = TurnToFace(Position, ship.GetPosition(), Orientation, TurnSpeed); currentSpeed = MaxSpeed; } else if (state == State.Wander) { // wander works just like the mouse's. Wander(Position, ref WanderDirection, ref Orientation, TurnSpeed); currentSpeed = .25f * MaxSpeed; } else { currentSpeed = 0.0f; } Vector2 heading = new Vector2( (float)Math.Cos(Orientation), (float)Math.Sin(Orientation)); Position += heading * currentSpeed; }
private void GameSetUp() { ship = new Ship(Content, new Vector2(1900, 950)); player = new Player(new Vector2(ship.GetPosition().X, ship.GetPosition().Y + ship.GetHeight()), Content); }