/// <summary> /// Update code of the program /// </summary> private void Update(float step) { //gameTime = clock.Restart(); //float step = 1f / 60f; #region FPS timeElapsed += step; if (timeElapsed > 1) { Console.WriteLine("FPS: {0}", fps); fps = 0; timeElapsed = 0; } fps++; #endregion FPS if (Keyboard.IsKeyPressed(Keyboard.Key.E)) { for (int i = 0; i < 500; i++) { //EntityManager.AddEnemy(new Shooter(new Vector2f(100 + i, 100), -90)); } } if (Keyboard.IsKeyPressed(Keyboard.Key.Up)) { sigma += 0.01f; } if (Keyboard.IsKeyPressed(Keyboard.Key.Down)) { sigma -= 0.01f; } if (Keyboard.IsKeyPressed(Keyboard.Key.Left)) { glow -= 0.01f; } if (Keyboard.IsKeyPressed(Keyboard.Key.Right)) { glow += 0.01f; } EntityManager.Update(step); if (!Bomb.CanEnemiesSpawn) { EntityManager.DeleteAllEnemies(); } if (EntityManager.EnemyCount < currentMaxEnemies && Bomb.CanEnemiesSpawn) { Vector2f spawnPos; Vector2f heroPos = Hero.GetInstance().Pos; do { spawnPos = new Vector2f(rnd.Next(50, (int)GAME_X_LIMIT - 50), rnd.Next(50, (int)GAME_Y_LIMIT - 50)); } while (Math.Abs(Common.DistanceBetweenTwoPoints(spawnPos, heroPos)) < SpawnRadius); float spawnAngle = rnd.Next(0, 360); Array values = Enum.GetValues(typeof(SpawnableEnemies)); switch ((SpawnableEnemies)values.GetValue(rnd.Next(values.Length))) { case SpawnableEnemies.Shooter: EntityManager.AddEnemy(new Shooter(spawnPos, spawnAngle)); break; case SpawnableEnemies.Sniper: EntityManager.AddEnemy(new Sniper(spawnPos)); break; case SpawnableEnemies.Spinner: EntityManager.AddEnemy(new Spinner(spawnPos, spawnAngle)); break; } } }