set_mode()

set_mode(<nuevo modo de vídeo>)

Descripción:

Fija un nuevo modo de vídeo para la ejecución del juego. Los modos de vídeo estándar que se pueden especificar como parámetro son:

  m320x200 - VGA estándar
  m320x240 - Modo X
  m320x400 - Modo X
  m360x240 - Modo X
  m360x360 - Modo X
  m376x282 - Modo X
  m640x400 - SVGA VESA
  m640x480 - SVGA VESA
  m800x600 - SVGA VESA
  m1024x768 - SVGA VESA

Nota: Además de estos modos (que suelen ser estándar en la mayoría de adaptadores), existe una estructura global denominada video_modes que contiene la lista de modos VESA detectados en el adaptador de vídeo del sistema. Estos modos también pueden ser utilizados con la función set_mode().

Al realizarse un cambio de modo de vídeo en el programa se realizará automáticamente un fundido a negro (de la paleta de colores del programa) y en las siguientes visualizaciones del juego se irá restaurando gradualmente la paleta de colores, es decir, set_mode() realiza siempre un fade_off() justo antes de cambiar el modo de vídeo y un fade_on() justo después de haberlo cambiado.

Por defecto todos los programas comienzan con el modo de 320 por 200 puntos activado (set_mode(m320x200)).

Programa ejemplo:
PROGRAM ejemplo_set_mode;

PRIVATE
    modos[]=
        m320x200, m320x240, m320x400, m360x240, m360x360,
        m376x282, m640x400, m640x480, m800x600, m1024x768;
    modovideo=0;

BEGIN
    load_fpg("help\help.fpg");
    write (0, 0, 0, 0, "Pulse [ESPACIO] para cambiar el modo de vídeo");
    LOOP
        IF (scan_code==_space)
            modovideo=modovideo+1;
            IF (modovideo==10) modovideo=0; END

            set_mode(modos[modovideo]);

        END
        FRAME;
    END
END


En el ejemplo se pone un fondo de pantalla y un texto explicativo.

En la iteración del bucle principal, si se pulsa la barra espaciadora, se activará un nuevo modo de vídeo con la función set_mode().


Importante: Al utilizar la función set_mode() se eliminarán todas las ventanas de scroll y de modo 7 que estuvieran activas en el juego y todos los procesos que se estuvieran visualizando en ellas.


Ver: set_fps() - max_process_time - m320x200 ... m1024x768 - STRUCT video_modes