| Artículos | 01 MAY 1995

Truco 127: Fundidos en pantalla

Tags: Histórico
Aurelio Llorente.

Hay varias formas de presentar la informacion en la pantalla del ordenador, una manera, muy utilizada por todos los profesionales del mundo del software (sobretodo software lúdico), es la de hacer aparecer la información poco a poco. Este efecto, agradable para la vista, es el mismo que se utiliza en el cine y la televisión y se denomina FUNDIDO. La informacion de la pantalla (texto o gráficos) desaparece lenta y gradualmente (FUNDIDO A NEGRO o FUNDIDO DECREMENTAL) o aparece, también paso a paso, lentamente, hasta conseguir su colorido e intensidad original (FUNDIDO A COLOR o FUNDIDO INCREMENTAL).

El truco que les presento consta de dos funciones (Fundido_Incremental() y Fundido_Decremental()) las cuales realizan estos FUNDIDOS.

La primera función, Fundido_Incremental(), hace el FUNDIDO A COLOR. Esta función va haciendo aparecer la pantalla que nosotros queramos lenta y gradualmente hasta llegar a su color e intensidad original.

La pantalla que queremos presentar la deberemos escribir en una función aparte, y pasar el nombre de ésta como parámetro.

Los parámetros que se pasan a esta función son los siguientes:

unsigned int regini: Un número entero que indica el primer registro de color de la VGA desde el que se empieza a hacer el fundido.

unsigned int numreg: Un número entero que indica el número de registros a partir de regini a los que afecta el fundido.

void (*pantalla)(void): Es el nombre de la función (es decir un puntero a una función ) donde esta escrita la pantalla que se quiere fundir.

int vel: Un número entero que indica la velocidad del fundido. Cuanto mayor sea el número más lento se realiza el fundido.

La segunda función, Fundido_Decremental(), hace el FUNDIDO A NEGRO. Esta función va haciendo desaparecer lenta y gradualmente la información mostrada en la pantalla hasta llegar a oscurecerla por completo.

Los parámetros que se pasan a esta función son los siguientes:

unsigned int regini: Un número entero que indica el primer registro de color de la VGA desde el que se empieza a hacer el fundido.

unsigned int numreg: Un número entero que indica el número de registros a partir de regini a los que afecta el fundido.

int vel: Un número entero que indica la velocidad del fundido. Cuanto mayor sea el número más lento se realiza el fundido.

Observaciones:

El listado siguiente tiene estas dos funciones y un pequeño programa ejemplo, que demuestra el funcionamiento de las funciones de FUNDIDO.

Este programa dibuja una pantalla ejemplo en el modo

grafico 13h (320x200, 256 colores), después se hace el fundido a color y luego el fundido a negro.

La pantalla del programa ejemplo está en modo gráfico, pero se puede poner cualquier otro modo de pantalla de gráficos o de texto.

El programa ha sido compilado y ejecutado satisfactoriamente en los siguientes equipos:

486DX2, 66Mhz (clonico)

486DX, 33Mhz (IBM PS/Value Point)

386SX, 25Mhz (IBM PS/Value Point)

386SX, 16Mhz (COP)

con el compilador Borland C++, version: 3.1, y tambien con el compilador de Turbo C++, version: 1.0, y con el modelo de memoria SMALL, funcionando correctamente siempre.

Fernando Ruza Rodríguez (Guadalajara)

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información