Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
 /// <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;
     }
 }