PDF de programación - Introducción a Allegro con Dev-C++

Imágen de pdf Introducción a Allegro con Dev-C++

Introducción a Allegro con Dev-C++gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 30 de Diciembre del 2017)
2.951 visualizaciones desde el 30 de Diciembre del 2017
312,3 KB
5 paginas
Creado hace 20a (12/04/2004)
Dpto. Lenguajes y Ciencias de la Computación

E.T.S.I. Telecomunicación

Laboratorio de Programación
Introducción a Allegro con Dev-C++

Abril 2004
Abril 2004

David Bueno Vallejo
David Bueno Vallejo

PlanPlan

•• Introducci
Introduccióónn
•• Instalaci
Instalacióónn
•• ““Hola Mundo
Hola Mundo””
•• Dibujar figuras b
Dibujar figuras báásicas y colores
sicas y colores
•• Manejo del rat
Manejo del ratóónn
•• Introducir retrasos en el c
Introducir retrasos en el cóódigodigo
•• Cargar im
Cargar imáágenes
genes
•• Minitutoriales
Minitutoriales

22

1

Introducci
Introduccióónn

•• La consola limita mucho las aplicaciones pues tiene una
La consola limita mucho las aplicaciones pues tiene una
interfaz textual
interfaz textual
•• A veces puede ser necesario trabajar con una interfaz
A veces puede ser necesario trabajar con una interfaz
grgrááficafica
Allegro es una libreríía multiplataforma (funciona sobre
a multiplataforma (funciona sobre
windows//unixunix//macmac os) que permite trabajar de una
windows
os) que permite trabajar de una
forma sencilla con modos gr
forma sencilla con modos grááficos, im
ficos, imáágenes, textos,
genes, textos,
ventanas, rat
ventanas, ratóón, teclado, sonido o dispositivos de juegos
n, teclado, sonido o dispositivos de juegos
gina oficial de allegro en españñol se encuentra en:
ol se encuentra en:

•• La pLa páágina oficial de allegro en espa

•• Allegro es una librer

–– http://alleg.sourceforge.net/index.es.html
http://alleg.sourceforge.net/index.es.html

33

Instalaci
Instalacióónn

•• La librer

La libreríía allegro puede descargarse de la p
a allegro puede descargarse de la páágina oficial o de:
gina oficial o de:
–– http://altair.lcc.uma.es/clases/Laboratorio/curso200304/principa

http://altair.lcc.uma.es/clases/Laboratorio/curso200304/principal.html#
l.html#
entorno
entorno
•• El fichero

allegro.zip contiene:
contiene:

El fichero de instalacióón (n (Allegro_install.zip
Allegro_install.zip))
La ayuda de allegro (allegro.en.chm
allegro.en.chm))

El fichero allegro.zip
–– El fichero de instalaci
–– La ayuda de allegro (
Para la instalacióón seguir los pasos siguientes:
n seguir los pasos siguientes:
–– Ejecutar el programa

•• Para la instalaci

Alleg4DC..exeexe que esta en el

–– Despu

en c:\\DevDev--CppCpp))

C++. Supongamos que estáá en c:

s de ejecutarlo, en C:\\DevDev--CppCpp\\DllDll hay un fichero alleg40.

Ejecutar el programa Alleg4DC
que esta en el zipzip Allegro_install.zip
Allegro_install.zip
(hay que prestar atenci
(hay que prestar atencióón para instalarlo en la misma carpeta en la que
n para instalarlo en la misma carpeta en la que
estestéé DevDev--C++. Supongamos que est
Despuéés de ejecutarlo, en C:
hay un fichero alleg40.dlldll que
que
debe acompa
debe acompaññar a cualquier ejecutable que se cree (es decir, debe ir en
ar a cualquier ejecutable que se cree (es decir, debe ir en
la misma carpeta que el proyecto).
la misma carpeta que el proyecto).
Para comenzar una aplicacióón con alegro se elige Archivo
Proyecto
Proyecto (cid:224)(cid:224) Allegro
–– Para que no aparezcan errores es necesario hacer lo siguiente:
Para que no aparezcan errores es necesario hacer lo siguiente:
–– En Proyecto
metros (cid:224)(cid:224) Linker
En Proyecto (cid:224)(cid:224) Opciones de Proyecto

n con alegro se elige Archivo (cid:224)(cid:224) Nuevo
Nuevo

Opciones de Proyecto (cid:224)(cid:224) ParParáámetros

Allegro (cid:224)(cid:224) Allegro Project (DLL

Allegro Project (DLL Version
Version))

–– Para comenzar una aplicaci

Linker: : --lalleg
lalleg

44

2

Hola Mundo
Hola Mundo

#include <allegro.h>

void InicializaAllegro() {

// Inicializa la librería Allegro.

Inicializa pantalla,
teclado y ratón

allegro_init();
set_color_depth(24); // Pone el número de colores a 24 bits
// Selecciona la resolución de la pantalla a 640x480
set_gfx_mode(GFX_SAFE, 640, 480, 0, 0);
install_keyboard(); // Inicializa las funciones de teclado de la librería
install_timer();// Inicializa los temporizadores necesarios para manejar el ratón
install_mouse(); // Prepara el ratón para poder utilizarlo
show_mouse(screen); // Muestra el ratón en pantalla

}

int main()
{
// Initializa Allegro.
InicializaAllegro();
// Mensajes por pantalla
textout(screen, font, "Hola Mundo!", 1, 1, 0xFFFFFF);
textout(screen, font, "Pulsa ESCape para salir", 1, 12, 0xFF00FF);
// Bucle que para cuando se pulsa la tecla ESC
while(! key[KEY_ESC]) {

poll_keyboard(); // No necesario en windows, limpia el buffer.

Programa básico

de Allegro

}
// Sale correctamente del allegro
allegro_exit();
return 0;
}
// Macro que llama a WinMain().
END_OF_MAIN();

Se recomienda mirar con detalle todas las funciones

expuestas en la ayuda de allegro para
conocer exactamente su funcionamiento.

55

Dibujar figuras báásicas y colores
Dibujar figuras b
sicas y colores

•• En esta librer
•• Para dibujar rect

–– Si la resoluci

a la variable screen

screen hace referencia a la pantalla
hace referencia a la pantalla

rect(pantalla,x1,y1,x2,y2,color)
,y1,x2,y2,color)
rectfill(pantalla,x1,y1,x2,y2,color)
,y1,x2,y2,color)

En esta libreríía la variable
Para dibujar rectáángulos
ngulos
–– (hueco):
(hueco): rect(pantalla,x1
(relleno): rectfill(pantalla,x1
–– (relleno):
Donde (x1,y1) es la esquina superior izquierda del rect áángulo y (x2,y2)
–– Donde (x1,y1) es la esquina superior izquierda del rect
ngulo y (x2,y2)
la esquina inferior derecha
la esquina inferior derecha
Si la resolucióón es de 640x480 quiere decir que
valor entre [0..639] e
valor entre [0..639] e y1,y2
El color es un núúmero mero hexadecimal
RGB(Rojo, Verde y Azul)
, Verde y Azul)
0xRRGGBB, es decir para cada tonalidad se pueden poner dos valor
0xRRGGBB, es decir para cada tonalidad se pueden poner dos valores es
entre 00 y FF
entre 00 y FF
–– Ejemplos: Blanco(0xFFFFFF), Negro(0x000000), Amarillo(0xFFFF00),
Ejemplos: Blanco(0xFFFFFF), Negro(0x000000), Amarillo(0xFFFF00),
Rojo (0xFF0000)
Rojo (0xFF0000)
En cualquier programa de dibujo se pueden obtener estos valores para
para
cada color
cada color
Un ejemplo que pintaríía un rect

–– En cualquier programa de dibujo se pueden obtener estos valores

y1,y2 entre [0..479]
entre [0..479]
hexadecimal en en RGB(Rojo

n es de 640x480 quiere decir que x1,x2

x1,x2 pueden tomar un
pueden tomar un

a un rect áángulo rojo ser

ngulo rojo seríía:a:

–– Un ejemplo que pintar

–– El color es un n

•• rect(screen

rect(screen,100,100,200,200,0xFF0000)
,100,100,200,200,0xFF0000)

66

3

Manejo del rat
Manejo del ratóónn

•• Por ejemplo, si

mouse_x=100=100 y y mouse_y

mouse_y=234=234 indica que el rat

indica que el ratóón n

n con las variables enteras mouse_x

•• Para saber si se ha pulsado el bot

n tambiéén es muy sencillo. Tras inicializar el rat
n es muy sencillo. Tras inicializar el ratóón n
install_mouse, se puede acceder en cualquier momento a las
, se puede acceder en cualquier momento a las
mouse_x y y

•• El manejo del rat
El manejo del ratóón tambi
con
con install_mouse
coordenadas del rat
coordenadas del ratóón con las variables enteras
mouse_y
mouse_y. .
Por ejemplo, si mouse_x
estestáá en la coordenada (100,234) de la pantalla.
en la coordenada (100,234) de la pantalla.
Para saber si se ha pulsado el botóón izquierdo del rat
utilizar la variable
utilizar la variable mouse_b
•• La expresi
La expresióónn ((mouse_b
pulsado.
pulsado.
Para comprobar si se ha pulsado el botóón derecho la expresi
consultar es (
consultar es (mouse_b
Para saber si el ratóón est
dentro de un rectáángulo, es suficiente
ngulo, es suficiente
con comprobar las coordenadas de los extremos. Por ejemplo, si e
con comprobar las coordenadas de los extremos. Por ejemplo, si el l
rect
rectáángulo
ratratóón est
ngulo
n estáá
(100,200,150,250) si se cumple que:
(100,200,150,250) si se cumple que:
–– ((100<x) && (x<150) && (200<y) && (y<250))
((100<x) && (x<150) && (200<y) && (y<250))

•• Para comprobar si se ha pulsado el bot

mouse_b que indica si se ha pulsado un bot

que indica si se ha pulsado un botóónn

n izquierdo del ratóón, se puede
n, se puede

mouse_b & 1)

& 1) vale 1 si el bot

vale 1 si el botóón izquierdo se ha
n izquierdo se ha

•• Para saber si el rat

n derecho la expresióón a n a

en
en

(x,yx,y), se
(
), se

localizar
localizaráá

dentro del
dentro del

mouse_b & 2& 2 == 2)
== 2)

n estáá dentro de un rect

77

Introducir retrasos en el c
Introducir retrasos en el cóódigodigo

•• Si se quiere producir un retraso, es decir, parar la
Si se quiere producir un retraso, es decir, parar la
ejecucióón durante un tiempo, se puede utilizar la
n durante un tiempo, se puede utilizar la
ejecuci
instrucci
instruccióón:n:
–– rest(milisegundos
rest(milisegundos))
Por ejemplo, rest

(1000) para el programa un segundo
para el programa un segundo

•• Por ejemplo,

rest(1000)

88

4

Cargar imáágenes
Cargar im
genes

•• Los ficheros de im

Los ficheros de imáágenes se carga en una estructura llamada
genes se carga en una estructura llamada
BITMAP, igual que la utilizada para la variable de pantalla
BITMAP, igual que la utilizada para la variable de pantalla screen
screen. .
Por ejemplo, para mostrar en las coordenadas de pantalla
Por ejemplo, para mostrar en las coordenadas de pantalla
(100,150), una imagen llamada
(100,150), una imagen llamada mina.bmp
de tamañño 16x16, es
o 16x16, es
necesario la siguiente secuencia de instrucciones
necesario la siguiente secuencia de instrucciones

mina.bmp de tama

BITMAP *imgmina; // Definición de la variable de tipo bitmap (puntero)
PALLETE pal; // Definición de una variable de tip
  • Links de descarga
http://lwp-l.com/pdf8088

Comentarios de: Introducción a Allegro con Dev-C++ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad