コード例 #1
0
ファイル: Game.cs プロジェクト: Malpp/TP3
        /// <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;
                }
            }
        }