protected override void Initialize() { base.Initialize(); tim = new Spelare(); PLista = new List <Bas>(); Viewport = GraphicsDevice.Viewport; PLista.Add(new Plattform(new Vector2(800, 100), 0, 0, 0, 0, new Vector2(0, 380))); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } // TODO: Add your update logic here if (gameState == Meny.main) { if (Keyboard.GetState().IsKeyDown(Keys.Enter)) { gameState = Meny.play; } //Difficulity else if (Keyboard.GetState().IsKeyDown(Keys.D1)) { enemyHP = 1; } else if (Keyboard.GetState().IsKeyDown(Keys.D2)) { enemyHP = 2; } else if (Keyboard.GetState().IsKeyDown(Keys.D3)) { enemyHP = 3; } } else if (gameState == Meny.play) { //Difficulity if (score == 10) { spawnTimer = 30; } else if (score == 25) { spawnTimer = 20; } else if (score >= 50) { spawnTimer = 10; } else if (score >= 99) { spawnTimer = 5; } if (karaktärsList.Count == 0)//Lägger till spelaren { StartPos = new Vector2(80, 80); karaktärsList.Add(new Spelare(spelareTex, StartPos, shotTex)); } if (tempSpawnTimer <= 0)//Lägger till fiender { karaktärsList.Add(new Enemy(enemyTex, new Vector2(window.Width / 2 - 20, window.Height / 2 - 20), enemyHP)); tempSpawnTimer = spawnTimer; } tempSpawnTimer--; //Karaktär logic: for (int i = 0; i < karaktärsList.Count; i++) { karaktärsList[i].Update(karta); if (karaktärsList[i] is Enemy) { if (karaktärsList[i].isDead == true) { karaktärsList.Remove(karaktärsList[i]); score++; i--; continue; } foreach (Karaktär karaktär in karaktärsList) { if (karaktärsList[i].hitbox.Intersects(karaktär.hitbox) && karaktär is Spelare) { karaktär.hp -= karaktärsList[i].dmg; } } } if (karaktärsList[i] is Spelare) { //Check if projectile intersects enemy Spelare spelare = karaktärsList[i] as Spelare; for (int j = 0; spelare.projectileList.Count > j; j++) { foreach (Karaktär karaktär in karaktärsList) { if (spelare.projectileList[j].Hitbox.Intersects(karaktär.hitbox) && karaktär is Enemy) { karaktär.hp -= spelare.projectileList[j].dmg; spelare.projectileList[j].IsDead = true; } } } if (spelare.isDead) { gameState = Meny.gameover; } } if (karaktärsList[i].hp <= 0) { karaktärsList[i].isDead = true; } } karta.Update(); base.Update(gameTime); } else if (gameState == Meny.gameover) { if (score != 0) { scoretable.Add(score); scoretable.Sort((a, b) => - 1 * a.CompareTo(b)); score = 0; } bw = new BinaryWriter(new FileStream("scoretable.dat", FileMode.OpenOrCreate, FileAccess.Write)); for (int i = 0; i < scoretable.Count; i++) { bw.Write(scoretable[i]); } bw.Close(); if (Keyboard.GetState().IsKeyDown(Keys.R)) { gameState = Meny.play; } else if (Keyboard.GetState().IsKeyDown(Keys.E)) { gameState = Meny.main; } karaktärsList.Clear(); spawnTimer = 60; } }