Пример #1
0
        protected override void Update(GameTime gameTime)
        {
            KeyboardState a = Keyboard.GetState();

            // om man trycker på escape så avslutas monogame
            if (a.IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            s1.Update(gameTime);
            s2.Update(gameTime);



            //Om Spawnrate är över 15 så kommer den minska med 5 var 10 sekund, 10s = enemytimer 600
            if (SpawnRate > 15)
            {
                EnemyTimer++;
                if (EnemyTimer == 120)
                {
                    SpawnRate -= 5;
                    EnemyTimer = 0;
                }
            }
            //Om Spawnrate är 5<x<15 så kommer den minska med 1 var 10 sekund, 10s = enemytimer 600
            if (SpawnRate <= 15 && SpawnRate > 5)
            {
                EnemyTimer++;
                if (EnemyTimer == 120)
                {
                    SpawnRate -= 1;
                    EnemyTimer = 0;
                }
            }
            EnemySpawnPos = rnd.Next(0, 1800);
            if (rnd.Next(0, SpawnRate) == 0)
            {
                RandomEnemySpawn.Add(new Vector2(EnemySpawnPos, 0));
            }
            for (int i = 0; i < RandomEnemySpawn.Count; i++)
            {
                RandomEnemySpawn[i] = RandomEnemySpawn[i] - new Vector2(0, -2);
                Rectangle rec             = new Rectangle((int)RandomEnemySpawn[i].X, (int)RandomEnemySpawn[i].Y, 30, 50);
                Rectangle storlekSpelare1 = new Rectangle((int)spelare1pos.X, (int)spelare1pos.Y, 130, 130);
                if (s1.StorlekSpelare1.Intersects(rec))
                {
                    Exit();
                }
            }



            for (int i = 0; i < RandomEnemySpawn.Count; i++)
            {
                RandomEnemySpawn[i] = RandomEnemySpawn[i] - new Vector2(0, -2);
                Rectangle rec             = new Rectangle((int)RandomEnemySpawn[i].X, (int)RandomEnemySpawn[i].Y, 30, 50);
                Rectangle storlekSpelare2 = new Rectangle((int)Spelare2pos.X, (int)Spelare2pos.Y, 130, 130);
                if (s2.StorlekSpelare2.Intersects(rec))
                {
                    Exit();
                }
            }

            base.Update(gameTime);
        }
Пример #2
0
        protected override void Update(GameTime gameTime)
        {
            KeyboardState a = Keyboard.GetState(); //istället för att skriva keyboardstate så kan man skriva a med samma funktion

            // om man trycker på escape så avslutas monogame
            if (a.IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            //S. refererar till min klass som heter Spelare1
            S.Update(gameTime);



            //Om Spawnrate är över 15 så kommer den minska med 5 var 10 sekund, 10s = enemytimer 600
            if (SpawnRate > 15)
            {
                EnemyTimer++;
                if (EnemyTimer == 120)
                {
                    SpawnRate -= 5;
                    EnemyTimer = 0;
                }
            }
            //Om Spawnrate är 5<x<15 så kommer den minska med 1 var 10 sekund, 10s = enemytimer 600
            if (SpawnRate <= 15 && SpawnRate > 5)
            {
                EnemyTimer++;
                if (EnemyTimer == 120)
                {
                    SpawnRate -= 1;
                    EnemyTimer = 0;
                }
            }

            //vart enemy ska spawna random mellan 0, 1800
            EnemySpawnPos = rnd.Next(0, 1800);
            if (rnd.Next(0, SpawnRate) == 0)
            {
                RandomEnemySpawn.Add(new Vector2(EnemySpawnPos, 0));
            }


            //collision mellan enemy och spelaren då spelet stängs av om spelaren kolliderar
            for (int i = 0; i < RandomEnemySpawn.Count; i++)
            {
                RandomEnemySpawn[i] = RandomEnemySpawn[i] - new Vector2(0, -2);
                Rectangle rec            = new Rectangle((int)RandomEnemySpawn[i].X, (int)RandomEnemySpawn[i].Y, 30, 50);
                Rectangle StorlekSpelare = new Rectangle((int)SpelarePos.X, (int)SpelarePos.Y, 130, 130);
                if (S.Storlekspelare.Intersects(rec))
                {
                    RandomEnemySpawn.Remove(RandomEnemySpawn[i]);
                }
            }
            // Spawn raten på powerupsen som dyker upp random på skärmen och de sapwnar fler ju längre man spelar
            if (Spawnratepower > 15)
            {
                PowerTimer++;
                if (PowerTimer == 10)
                {
                    Spawnratepower -= 1;
                    PowerTimer      = 0;
                }
            }

            if (Spawnratepower <= 1)
            {
                PowerTimer++;
                if (PowerTimer == 10)
                {
                    Spawnratepower -= 1;
                    PowerTimer      = 0;
                }
            }
            PowerPos = rnd.Next(0, 1900);
            if (rnd.Next(0, Spawnratepower) == 0)
            {
                RandomPowerSpawn.Add(new Vector2(rnd.Next(0, 1900), rnd.Next(0, 950)));
            }

            //kollision mellan skotten och enemy då båda försvinner från skärmen vid kollision
            for (int i = 0; i < RandomEnemySpawn.Count; i++)
            {
                RandomEnemySpawn[i] = RandomEnemySpawn[i] - new Vector2(0, -2);
                Rectangle rec = new Rectangle((int)RandomEnemySpawn[i].X, (int)RandomEnemySpawn[i].Y, 30, 50);
                for (int j = 0; j < SpelareSkottPos.Count; j++)
                {
                    Rectangle Storlekskott = new Rectangle((int)SpelareSkottPos[j].X, (int)SpelareSkottPos[j].Y, 100, 100);

                    if (Storlekskott.Intersects(rec))
                    {
                        SpelareSkottPos.Remove(SpelareSkottPos[j]);
                        RandomEnemySpawn.Remove(RandomEnemySpawn[Math.Max(i, 0)]);
                        i--;
                    }
                }
            }

            //kollision mellan spelare och powerupsen, då spelaren kolliderar så får han + 2 speed permanent
            for (int i = 0; i < RandomPowerSpawn.Count; i++)
            {
                Rectangle rec            = new Rectangle((int)RandomPowerSpawn[i].X, (int)RandomPowerSpawn[i].Y, 10, 50);
                Rectangle StorlekSpelare = new Rectangle((int)SpelarePos.X, (int)SpelarePos.Y, 130, 130);
                if (S.Storlekspelare.Intersects(rec))
                {
                    RandomPowerSpawn.Remove(RandomPowerSpawn[i]);

                    S.Speed += 2; // för varje gång spelaren tar upp poweruppen så ökar hastigheten permanent för spelaren.
                }
            }

            base.Update(gameTime);
        }