|
|
|
El efecto que realizaremos
será el de simular un campo de estrellas que se mueve horizontalmente
por la pantalla. Para conseguir este efecto, primero
tendremos que crear una estructura a la que llamaremos
stars, dentro de esta definiremos tres variables del tipo int,
a la que llamaremos x, y, z respectivamente. Luego crearemos un arreglo
de estructuras, el tamaño será la longitud del número
de estrellas que queremos que aparezcan en la pantalla. Por ejemplo nosotros
crearemos una constante llamada MAX_STARS que será la longitud del
arreglo:
#define MAX_STARS 180 El arreglo de estructuras quedaría
declarada de la siguiente forma:
Una vez iniciado el modo gráfico,
con la ayuda de la función random() generaremos las
estrellas aleatoriamente con un ciclo de la siguiente manera:
Como podemos ver, con este el ciclo ponemos a cada estrella un valor que está dentro de la pantalla, así lo haremos hasta llegar a la última estrella (MAXSTARS), que puede tener el valor que nosotros queramos. Z nos sirve para saber la velocidad a la que va la estrella, después con esta variable conoceremos el color que tenemos que darle a la estrella para que tenga un efecto de profundidad, así que tenemos que cuanto más de prisa se mueva la estrella (z=3), mas blanca será, y al contrario cuanto más lenta (z=1) más oscura será. Para cambiar los colores por grises lo haremos con la función SetColor() y así para cambiar los colores del 1 al 3, haríamos lo siguiente: SetColor(1, 26, 26, 26);
Ahora solo nos queda ir dibujando las estrellas
mediante un ciclo del tipo do-while, dentro del cual habrá
unos pasos a seguir para ir controlando las estrellas. Veamos entonces
como nos quedaría el código para colocar las estrellas:
La explicación del código es muy simple. Para empezar tenemos un bucle do-while que se repetirá hasta que se presione alguna tecla. Luego esperamos el retrazado vertical, y hacemos un for para recorrer cada una de las estrellas. Dentro de este ciclo primero se borra la estrella, luego se incrementa la posicion z veces. Después se verifica si alguna estrella ha salido de la pantalla, si es así creamos una nueva estrella, y al final colocamos el punto en la posicion (x,y) y de color z. Como ven hacer este efecto es muy simple. Incluso con unas cuantas modificaciones podemos cambiar la dirección en que van las estrellas, y tambien le podemos dar mas planos haciendo z mas grande, aunque en este caso la paleta tambien se vería modificada.
Ejemplo Librería gráfica: vgalib.h
|