Ejemplo de Gambas3
y uso
de la libreria SDL
Os doy una pequeña explicación de como esta hecha:
1) Para poder usar el componente gb.sdl , debes de activarlo en el menu Proyecto/Propiedades/Pestaña Componentes. Como tambien
Al activar estos dos componentes, vamos a poder usar las clases Window (http://gambaswiki.org/wiki/comp/gb.sdl/window?l=es), Music (http://gambaswiki.org/wiki/comp/gb.sdl.sound/music?l=es)
y tendremos accesos a los eventos _draw() (para redibujar la pantalla) y _KeyPress() (para leer elteclado)
2) La estructura del proyecto:
Es la siguiente:
Podeis ver que el código fuente, tiene un módulo llamado MMain (que tiene el método _main() y es clase de inicio,(lo primero que se ejecutará del programa), y luego la carpeta Datos con las imágenes a usar por la aplicación.
3) Analisis del móulo MMain:
3.1) Inicialmente se define todas las variables del módulo.
La primera definición es la de Private Screen As New Window As "Screen"
que crea un nuevo objeto "Screen" que es una instancia de la clase Windows. A la vez lo enlazamos con un observador llamado "Screen"
Luego continua definiendo distintas variables integer, boolean, y del tipo "image" que almaceneran las imagenes que usemos.
3.2) Subrutina Main()
Crea unos arrays que se usaran para los copos de nieve y llama la subrutina init()
3.3) La subrutina Init()
Esta subrutina definirá las dimensiones del objeto Screen, definiendo que sea a ventana completa y la muestra.
Cargará la imagenes en la variables mediante:
Nombre_Variable = Image.load(nombre_archivo_imagen)Cargará tambien la fuente y el texto a mostrar "merry christmas everyone... "
Charge_Fonte()
Texte()
y definirá aleatoriametne los puntos de inicio de los copos de nieve.
RandomizeAdemas se se encargará de cargar la musica de fondo y ejecutarla:
For i = 1 To 150
xp[i] = (Rnd * 8) - 5
yp[i] = (Rnd * 8) + 1.2
x2[i] = screen.width
x2[i] = Rnd(x2[i])
y[i] = Rnd(y[i])
Next
Music.Load("Noel.ogg")
Music.Play(-1, 1)
3.4) Evento screen_draw()
Define lo que hará la aplicación cada vez que se redibuje.
Mediante varios algoritmos simples va colocando las imagenes mediante la orden
Draw.Image()Para no hacerlo demasiado largo, llama a otras subrutinas:
rosace() ' dibuja un papa noel subido en un globo
Boucing() 'dibuja imagenes rebotando en la pantalla
Traineau() 'muestra un trineo desplazandose por la pantalla
snow() 'muestra efecto de nieve cayendo.
Horror() 'dibuja una papanoel feo y ejecuta distinta musica
scrolle() 'realiza el movimiento del texto por la pantalla
3.5) Evento Screen_KeyPress()
Se encarga de leer el teclado, y si se produce la pulsación de la tecla Escape, para la musica y cierra la ventana y con ello la aplicación.
Os dejo aqui un pequeño video para que veais el resultado:
Descarga del código fuente de NOEL: enlace a la forge gambas (francia)
Descarga del códido fuente BELEN (variante): enlace del drive google
Fuente:
http://www.gambas-es.org/viewtopic.php?f=5&t=4315&highlight= (Shell)
No hay comentarios:
Publicar un comentario