예제 #1
0
        ////////////////////////
        // Métodos
        ////////////////////////

        public void Init() 
        {
            _logger.Log(LogLevel.Info, " > Configurando aplicación.");

            // buffer 32 bits de colors
            ContextSettings contextSettings = new ContextSettings();
            contextSettings.DepthBits = 32;

            // Creamos la ventana principal
            _logger.Log(LogLevel.Info, " >> Creando ventana principal.");
            // ventana no redimensionable
            _window = new RenderWindow(new VideoMode(800, 600), "Galaga ", Styles.Close, contextSettings);

            // gestor de escenas
            _logger.Log(LogLevel.Info, " >> Creando gestor de escenas.");
            _scnManager = new SceneManager();

            // Se crea el gestor de recursos y se leen los elementos
            _logger.Log(LogLevel.Info, " >> Creando gestor de recursos.");
            _resManager = new ResourcesManager(
                this.GetType().Assembly.GetManifestResourceStream("Galaga.main.resxml"));
            _resManager.RegisterLoadFunction("texture", SFMLResourcesManager.LoadTexture);
            _resManager.RegisterLoadFunction("font", SFMLResourcesManager.LoadFont);

            // creación del contexto
            _context = new Scene.Context(_window, _resManager);

            _timePerFrame = SFML.System.Time.FromSeconds(1f / 40f);           // como mínimo 40 frames por segundo
            _isPaused = false;

            RegisterDelegates();
            RegisterScenes();

            // pongo la primera escena en la pila
            _logger.Log(LogLevel.Info, " >> Push escena principal.");
            _scnManager.Push((int)SceneID.TITLE);
        
        }