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); }
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); }