SoloCodigo

Programación Específica => Programación de Videojuegos => Allegro => Mensaje iniciado por: kurko en Viernes 25 de Abril de 2003, 03:40

Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 03:40
como inserto una imagen gif?
me explico
la idea es ke al ejecutar un programa en c, aparezca una imagen gif al principio.
muchas gracias.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 06:05
creo que por el momento eso no va a ser posible porque la patente del algoritmo que el lee los graficos gif, la tiene Unisys y esta protegido por patente.
Sin embargo andan por ahi librerias piratas, hechales una buscada.
si lo que quieres es lo de la animacion, busca funciones de dibujo es decir de bmps en pantalla y haces cambios de una imagen a otra rapidamente...en escecia esto es lo que hace el gif...no se si ya le hechaste un vistazo a mi programa(te pido ese favor, necesito toda la inform acion que me puedas brindar) pero todas las animaciones se han hecho leyendo bmps sucesivamente.
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 17:37
juank, la verdad es ke no me manejo mucho en el tema.
lo ke yo necesito es insertarle un pekeño logo de mi universidad al programa en el inicio, da lo mismo en ke formato de imagen.
si me puedes ayudar te lo agradeceré mucho.
gracias desde ya.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 18:15
bajate allegro, instalalo y listo
 
Código: Text
  1.  
  2. #include <allegro.h>
  3. int main()
  4. {
  5.     int logox,logoy,screenx,screeny;/*estas son las coordenadas desde donde
  6. copiamos el bitmap y
  7. desde donde lo dibujamos en pantalla/*
  8.     int  ancho, largo;/*desde los puntos de origen, que tanto se va a copiar
  9. en el destino.*/
  10.     BITMAP *logo;
  11.     PALETTE *pal;
  12.    
  13.     allegro_init();    
  14.  
  15.     logo = create_bitmap(100,100);
  16.     logo = load_bmp("milogo.bmp", pal);
  17.  
  18.     logox=screenx=0;
  19.     logoy=screeny=0;
  20.     ancho=logo->w;
  21.     largo=logo->h;
  22.     set_palette(pal);
  23.     blit(logo,screen,logox,logoy,screenx,screeny,ancho,largo);
  24.     return 1;
  25. }
  26. END_OF_MAIN();
  27.  
  28.  

Esto te dibuja el logo en pantalla, y te funciona desde que tu compilador sea el DJGPP, o el mingw, o msvc..en fin en varios , pero no en el borland viejito.

JuanK

nota... porfa ayudame hacindole pruebas al programa que publique en el foro de videojuegos  please!!!, debes descomprimir el archivo bitmaps.rar en una carpeta Bitmaps.


chauu
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 19:06
hola juank
gracias por todo.
el codigo ke me diste para ponerle el logo a mi programa no me funcionó.
al compilar me aparecen alguns errores:

logo.c: In function `main':
logo.c:9: `BITMAP' undeclared (first use in this function)
logo.c:9: (Each undeclared identifier is reported only once
logo.c:9: for each function it appears in.)
logo.c:9: `logo' undeclared (first use in this function)
logo.c:10: `PALETTE' undeclared (first use in this function)
logo.c:10: `pal' undeclared (first use in this function)
logo.c:22: `screen' undeclared (first use in this function)
logo.c: At top level:
logo.c:25: warning: data definition has no type or storage class


estoy compilando con djgpp.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 19:14
Eso es por que no has bajado la libreria allegro.
Bajala aqui:

http://alleg.sourceforge.net/wip.es.html (http://alleg.sourceforge.net/wip.es.html)

en el codigo que te pase lleva :

#include<allegro.h>

Pero por alguna  razon en el modo de insercion de codigo no muestra los include.

una vez la bajes, descomprimes el contenido en una carpeta , supongo que no tienes turboc, asi que entra en nua consola msdos y dirigete a la carpeta de allegro, una vez alli digita:

fix djgpp
y cuando acabe digitas
make
y cuando acabe digitas
make install

basicamente esto te sirve para generar los archivos .lib necesarios, y listo.

ve a tu compilador y en las opciones dile que incluya la libreria allegro... y listo

como se que no te debio haber quedado muy claro, por favor dame respuesta y dime que compilador usas y conforme eso te dare la explicacion para ese compilador...


Suerte

Juank
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 20:03
lo del compilador.
uso djgpp. edito los codigos con rhide 1.5
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 20:21
Me allegra que utilices djgpp y rhide... son excelentes yo tambien los uso.

copia el zip de la paghina de allegro en el raiz del dgjpp es decir queda asi:

Djgppzipdeallegro.zip

-lo descomprimes con la utilidad unzip del djgpp
-una vez hecho esto entras por el command promt y vas a la carpeta de allegro

djgppallegro

-digita:

fix djgpp
make
make install

y listo.

Ahora en el rhide abre tu proyecto o tu programa y ve al menu
>Options>Libraries

alli señala que vas a linkar con la libreria allegro en algunas de las casillas disponibles, si te fijas la libreria se llama alleg.lib, asi que aqui escribes solo alleg..
y te queda asi:

me cuentas.
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 20:42
hice todo como me dijiste.
al momento de escribir "fix djgpp" estando dentro del directorio allegro, hace algunas cosas y luego dice Done!
y me vuelve a aparecer el prompt, luego escribo "make" y me dice "comando o nombre de arhivo incorrecto" y lo mismo con make install.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 21:05
estas seguro de que tienes instalada la variable de entorno del djgpp?

si la tienes cargada  deberias poder compilar por coonsola desde cualquier directorio o unidad de tu maquina

prueba:
-en el directorio de allegro
digita:
gcc
te debe responder:
gcc.exe: no input files

si no te sale eso digita:
%DJGPP%
y te debe devolver la ruta de las variables de entorno del dgjpp
C:/DJGPP/djgpp.env

sino te salio, que a estas alturas es lo màs probable, digita:

SET PATH=%PATH%;C:DJGPPBIN
SET DJGPP=C:/DJGPP/djgpp.env
fijate que para esta variable la direccion del slash es diferente

Ahora trata nuevamente repitiendo los pasos desde :
fix djgpp

si te sirvieron deberas agregar al archivo del autoexec.bat esto:

SET PATH=C:/DJGPP/bin;%PATH%
SET DJGPP=C:/DJGPP/djgpp.env

y guardarlo, de tal manera que no tengas que volver a hacer todo cada vez que reinicias el pc, esto solo sirve si es win 95 98 me, si es nt, 2000, o xp, no deberas agregarlas al autoexec.bat, sino que deberas seguir otro procedimiento:

ingresa a las propiedades de MI PC y luego en el recuadro vas a la pestaña de avanzado, luego al boton  variables de entorno y cargas alli las variables :

click en nueva, escribes el nombre y luego el valor, despues presiona OK:
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 21:11
juank, gracias pero si tengo las variables cargadas, eso lo hice cuando instalé el djgpp.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 21:16
ok...
entonces el problema es que no tienes un paquete del djgpp

mak3791b.zip

verifica que tengas este o uno superior, sino, que creo que no, debes bajarlo de la pagina de delorie, hay una aclaracion y es que yo tengo la version 2 del djgpp, el comando tambien sirve en la 1, pero puede que sea necesaria una libreria diferente en la version 1, de todos modos eso lo puedes mirar en la pagina de delorie, Este packete es el que habilita la utilidad make.

me cuentas please.
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 21:30
instalé el pakete ke me dijiste
luego hice esto:
C:DJGPPallegro>make
Missing djgpp package! You need to install txi40b.zip (or whatever the
latest version is). Download this from wherever you got djgpp, and unzip
it into the root of your djgpp directory. If you do not need the Info
documentation, run make all to ignore this error.

ke pasó?
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 21:36
instalé  txi42b.zip en el djgpp y solucioné el problema del make pero ahora al escribir make, me aparecen errores de este tipo, son muchos.
c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:45: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:46: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:48: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:49: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:50: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:51: parse error before "atanl"
c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:52: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:53: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:54: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:55: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:56: parse error before "fabsl"
c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:57: parse error before "_FARFUNC"

c:/djgpp/lib/gcc-lib/djgpp/3.22/include/math.h:58: parse error before "_FARFUNC"
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 21:36
te esta diciendo que no tienes archivos de documentacion, pero esto no le quita funcionalidad.... continua con el procedimiento y me cuentas.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 21:40
en que carpeta ejecutaste el make?
ya habias hecho fix djgpp?
Título: Re: Instalación de Allegro
Publicado por: kurko en Viernes 25 de Abril de 2003, 21:43
lo hice en c:>djgppallegro
y ya habia hecho fix djgpp antes.
los errores me aparecen tambien con make install
Título: Re: Instalación de Allegro
Publicado por: JuanK en Viernes 25 de Abril de 2003, 21:57
como estandart uso los siguientes paquetes del djgpp, esta es una lista de loque tengo, verifica todo y me cuentas.

debes tener una lib dañada, por eso adjunto los tamaño tambien.
Título: Re: Instalación de Allegro
Publicado por: kurko en Sábado 26 de Abril de 2003, 21:55
instalé todo el djgp de nuevo con los archivos ke tienes tu. hice lo de allegro de nuevo(fiz djgpp, make, make install) e instaló allegro bien.
despues traté de compilar el codigo ke me diste tu para ponerle el logo y me aparecen estos errores:

C:mis_prog>gcc -o logo logo.c
logo.c:1:18: alleg.h: No such file or directory (ENOENT)
logo.c: In function `main':
logo.c:9: `BITMAP' undeclared (first use in this function)
logo.c:9: (Each undeclared identifier is reported only once
logo.c:9: for each function it appears in.)
logo.c:9: `logo' undeclared (first use in this function)
logo.c:10: `PALETTE' undeclared (first use in this function)
logo.c:10: `pal' undeclared (first use in this function)
logo.c:22: `screen' undeclared (first use in this function)
logo.c: At top level:
logo.c:25: warning: data definition has no type or storage class

gracias por tu paciencia juank.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Sábado 26 de Abril de 2003, 22:10
digitaste mal el codigo el ancabezado es :

#include<allegro.h>

no alleg.h, alleg es la libreria que se va a enlazar y allegro.h es el archivo de encabezado que contiene las definiociones usadas en esa libreria.
recuerda...la libreria se llama alleg.lib, para llamarla en el rhide lo colocas como alleg en
>options>libraries
y lo marcas con la x, adicionalmente debes incluir el encabezado con las deficionciones es decir al inicio del codigo

#include<allegro.h>

ahora si te debe servir....

suerte
Título: Re: Instalación de Allegro
Publicado por: kurko en Sábado 26 de Abril de 2003, 22:41
si, tenia razon, pero lo arreglé y ahora me aparece esto

C:mis_prog>gcc -o logo logo.c
logo.c: In function `main':
logo.c:15: warning: passing arg 2 of `load_bmp' from incompatible pointer type
logo.c:21: warning: passing arg 1 of `set_palette' from incompatible pointer type
:(
Título: Re: Instalación de Allegro
Publicado por: JuanK en Sábado 26 de Abril de 2003, 23:23
Tienes razon, verdaderamente estaba ocupado cuando te pase el codigo ayer temprano, y olvide detallitos basicos,
ya los inclui...
debes tener presente cambiar la profundidad del color de acuerdo a lo que soporte tu targeta grafica, no todas soportan color de 32 bit asi que deberias cambiarlo sino te sirve.
 
Código: Text
  1. #include<stdio.h>
  2. #include<allegro.h>
  3. int main()
  4. {
  5.  
  6.     BITMAP *logo;
  7.     RGB *pal;
  8.    
  9.     allegro_init();
  10.     install_keyboard();
  11.     set_color_depth(32);
  12.  
  13.     if (set_gfx_mode(GFX_AUTODETECT, 1024,768, 0, 0) < 0)
  14.     {
  15.       set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  16.       allegro_message("No es posible iniciar el modo de video en ningun modonde color disponible en la implementaci½nn%s",
  17.       allegro_error);
  18.       readkey();
  19.       return 0;/*Inicializacion fallida.*/
  20.     }
  21.    
  22.     logo = load_bmp("allegro.bmp", pal);
  23.     blit(logo,screen,0,0,0,0,logo->w,logo->h);
  24.     /*blit:
  25.     origen, destino, origenx, origeny, destinox, destinoy, ancho, alto*/
  26.     readkey();
  27.     return 1;
  28. }
  29. END_OF_MAIN();
  30.  
me cuentas
Título: Re: Instalación de Allegro
Publicado por: kurko en Sábado 26 de Abril de 2003, 23:46
ahora si compila bien
pero al ejecutar me keda la pantalla negra hasta ke presiono alguna tecla.
Título: Re: Instalación de Allegro
Publicado por: kurko en Domingo 27 de Abril de 2003, 00:02
olvida el mensaje anterior jeje
si funciona, gracias juank!!
voy a estar dandole vistasos a tu programa y ahí te cuento.
Título: Re: Instalación de Allegro
Publicado por: kurko en Domingo 27 de Abril de 2003, 00:12
te envío el codigo de lo ke estoy haciendo porque, necesito ponerle el logo de mi universidad al comienzo de la ejecucion del prgrama, el codigo ke me diste para ver el bmp me funciona, pero no se como incluirselo a mi codigo para que funcionen en conjunto.
gracias por todo.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Domingo 27 de Abril de 2003, 00:24
si deseas puedes dejatr el bmp, y justo antes de empezar el programa  has
allegro_exit();
clrscr();
y vuelves al modo de trabajo normal...

que porque???
porque si estas en el modo grafico no te funciona n las funciones que trabajan en modo texto, por obvias razones.

otra alternativa es :
 
Código: Text
  1.  
  2.     set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  3.  
  4.  

y asi te pasas al modo texto, pero no se si depues de esto ya operen tus funciones normales.

Me cuentas porfa..

por cierto leiste el mensaje que te envie por U2U?
Título: Re: Instalación de Allegro
Publicado por: kurko en Domingo 27 de Abril de 2003, 00:38
puse el codigo del bmp al principio de mi codigo y luego le puse allegro_exit();
clrscr();
al ejecutarlo, me aparece el bmp y luego al presionar una tecla se sale del programa.:(
Título: Re: Instalación de Allegro
Publicado por: kurko en Domingo 27 de Abril de 2003, 00:39
puse el codigo del bmp al principio de mi codigo y luego le puse allegro_exit();
clrscr();
al ejecutarlo, me aparece el bmp y luego al presionar una tecla se sale del programa.:(

el u2u ke me mandste sí lo leí. voy a tratar de colaborarte, no te preocupes.
Título: Re: Instalación de Allegro
Publicado por: JuanK en Domingo 27 de Abril de 2003, 00:43
utiliza  gfxmode....para colocar la pantalla de nuevo a modo texto, o antes de realizar allegro_exit(); dale clear_bitmap(screen);

preferiria limpiamente cargar el modo texto..
observa como hice control de errores para inicializar el modo grafico, puedes hacerlo para el modo texto tambien, asi lo puedes correr paso por paso y mirar donde te da el error.
Título: Re: Instalación de Allegro
Publicado por: kurko en Domingo 27 de Abril de 2003, 00:52
ahora si me funcionó. era el return 1; ke lo hacia salir.

una consulta, no es posible mezclar el modo grafico con el modo texto?? como para ponerle algun texto abajo de la imagen??
Título: Re: Instalación de Allegro
Publicado por: JuanK en Domingo 27 de Abril de 2003, 01:04
en el modo texto cada pixel ...se podia decir que de alguna forma cada pixel se trabaja como una letra..en modo grafico cada picxel eslo que es ... un piexel, al ser esto asi claro que puedes colocar texto, pero no se hace de la misma manera por obvias razones, para el caso de trabajar con allegro, deberias usar:
textout();
puedes averiguar en la documentacion de allegro, la cual se baja de la pagina de allegro,
para capturar los datos... laverdad ahora que caogo en cuenta nunca lo he hecho capturando cadenas, pero lo mas seguro es que debas hacer una funcion para capturar los datos de una cadena en modo grafico, o usar algo de los GDI de allegro.. pero esto es mas avanzado.
No es muy dificil de hacer ninguna de las dos, sobre todo la primera, pero debes ser paciente porque hasta ahora estas comenzando y te puedes ir de enrredos, sin embargo si quieres...intentalo!!!

Chau.
Título: Re: Instalación de Allegro
Publicado por: canoista en Lunes 28 de Abril de 2003, 21:32
Hola he leido este tema bastante a fondo y me ha servido de ayuda para instalar la libreria allegro. Pero tengo un problema he compilado el programa antes puesto y todo va bien, pero cuando salgo del programa la pantalla se me ve con interferencias, se me ve a rayas. Puedo solucionarlo dandole a propiedades de pantalla y cambiando de 16 a 32 bits o alreves. ¿Alguien sabe a que se debe esto?
Título: Instalación de Allegro
Publicado por: JuanK en Lunes 28 de Abril de 2003, 21:39
antes de acabar el programa debes colocar
allegro_exit();
para cerciorarte de que te este cerrando todo...normalmente no es necesario.

asegurate que al final del main este:
int main()
{

}
END_OF_MAIN();

Es probable que se deba a alguna particularidad de tu adaptador de video, para lo cual deberias hacer pruebas, primero corriendo el programa a resoluciones menores ej 320*200 y luego irla subiendo hasta 1024*768 todo a 16 bit de color, si todo salio bien, comienza a hacer las pruebas con otras profundidades de solor , segun sea a 24 o 32 bit..debes estar atento los modos que soporta tu tarjeta..de este modo te fijas a partir de que caracteristicas tu tarjeta podria fallar.

Por cierto como recomendacion trabaja siempre con una frecuencia de barrido de 60 hz
Suerte.


Juank