示例#1
0
        public LevelIntro(Level level)
        {
            Level = level;

            ContentManager contentManager = GameServices.GetService<ContentManager>();
            GraphicsDevice graphicsDevice = GameServices.GetService<GraphicsDevice>();
            GraphicsDeviceManager graphicsDeviceManager = GameServices.GetService<GraphicsDeviceManager>();
            LevelIntroFont = contentManager.Load<SpriteFont>(GeneralSettings.FontsPath + "HandOfSean");

            int Width = graphicsDeviceManager.PreferredBackBufferWidth;
            int Height = graphicsDeviceManager.PreferredBackBufferHeight;

            //Overlay
            IntroScreen = new Rectangle(0, 0, Width, Height);
            Texture = new Texture2D(graphicsDevice, 1, 1);
            Texture.SetData(new [] { Color.Black });

            //Font
            Vector2 FontSize = LevelIntroFont.MeasureString(level.Name) * 0.5f;
            FontPosition = new Vector2(graphicsDeviceManager.PreferredBackBufferWidth / 2f - FontSize.X / 2, graphicsDeviceManager.PreferredBackBufferHeight / 2f);
        }
示例#2
0
        public Level GenerateNextLevel()
        {
            var random = new Random();
            var level = new Level();

            var levelid = CurrentLevel == null ? 1 : CurrentLevel.Id + 1;
            level.Name = "Level " + levelid;
            level.Id = levelid;

            var amountOfSpawners = level.Id/2 + 1;
            for (int i = 0; i < amountOfSpawners; i++) {
                var amountOfEnemies = random.Next(5, 15) * level.Id * random.Next(1, 4);
                var spawner = SpawnerFactory.Instance.CreateSpawnerWIthRandomPositionAndRandomEnemies(amountOfEnemies);

                spawner.SpawnRate = 2000 - random.Next(10, 80);

                level.AddSpawner(spawner);
            }

            level.Initialize();
            Levels.Add(level);

            return level;
        }