Programación Específica > Allegro

 Problema Con Allegro Y Dev-cpp

<< < (2/3) > >>

ibito:

--- Código: Text --- #include &#60;allegro.h&#62; void init(){    allegro_init();    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 400, 200,0,0);    install_timer();    install_keyboard();    } void textout_ex( BITMAP *bmp, const FONT *f, const char *s, int x, int y, int color, int bg ); // ????????????????????????????????  void juego (){    textout_ex( screen, font, &#34;Hola Allegro&#34;, 10, 10, makecol( 0, 0, 255 ), -1 );       while(!key[KEY_ESC]){          exit(0);          }    } int main(){   init();   juego();      return(0);   } END_OF_MAIN;  
Para que tienes esa linea? yo la quitaría  :blink:

Geo:
La línea que menciona ibito no es necesaria (bórrala, aunque no debe dar problemas de dejarla allí). Pero esa no es la causa del error, en esta ocasión es porque a la macro al final de la función main es END_OF_MAIN(), con paréntesis. Estrictamente, el punto y coma ( ; ) no es necesario al final de la macro, pero los paréntesis si puesto que, si no los tiene, el compilador no la reconoce como una macro.

También, en el código de la función juego(), elimina la llamada a la función exit(), porque te sacará del programa: dentro del ciclo while de la función juego(), va el código del juego, que se estará repitiendo indefinidamente (en el caso de tu código, hasta que se presione la tecla ESC), la llamada a exit(0) hará que, en la primera ejecución del ciclo, el programa termine.

Estos dos errores se los has agregado tú pues no venían en el código original que posteaste, así que aquí te van unas sugerencias :D.
* Usa el primer código que posteaste, en él solo debes cambiar la función textout por textout_ex (recuerda que esta última función recibe un parámetro más).</li>
* Corrige lo de la macro END_OF_MAIN() en el segundo código y vuelve a compilar. Ejecuta y verás que te saca del programa. Elimina la llamada a exit() dentro del ciclo while, compila y vuélvelo a ejecutar para que veas la diferencia (y compruebes lo que te mencioné antes).</li>Saludos,
José Jorge (Geo).

palpatine16:
esto sigue sin ir

He cogido el primr codigo y le he cambiado el textout por textout_ex y nada, ahora me dan muchos errores

El codigo es este:


--- Código: Text --- /* ----------------------------------------------------------------------------------------------------------------|  Este código pertenece a la jungla de los tutoriales (www.tutorialespm.com). Puedes              ||  usar este código para lo que quieras excepto para fines comerciales. Si tienes alguna duda, o te gustaria  ||  comentar el código, dirígete a www.tutorialespm.com                              ||  -Cofruben.                                                  |---------------------------------------------------------------------------------------------------------------- ---&#62;Tutorial número: 1---&#62;Categoría: Juegos---&#62;Título: Space Invaders - 1º parte*/ /* Primer Capitulo del Space Invadersque pensamos hacer en este tutorial,alguna duda o fallo,dimelo para corregirlo ya que no soy perfecto(SIN COMENTARIOS..xDD)En este Capitulo aprenderemos como iniciarel modo grafico y a poner todo a punto para que se pueda imprimir un texto en Pantalla.Tutorial Compilado Con Dev-Cpp 4.9.9.2 yAllegro 4.2.0Created By Snakers*/ #include &#60;allegro.h&#62; //Cargamos el archivo de Cabecera de Allegro void init() { allegro_init(); //Iniciamos allegro set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0); /*Cambiamos el Modo grafico,pueden ser: GFX_AUTODETECT_FULLSCREEN edo GFX_AUTODETECT_WINDOWED ,en este caso pondremos 800x600*/ install_timer(); //Cargamos el temporizador(Por si queremos reproducir Sonido o Usar el Raton). install_keyboard(); //Cargamos el teclado } void juego() { textout_ex(screen,font,&#34;Space Invaders&#34;,SCREEN_W/2,SCREEN_H/2, makecol(0,0,255),-1); while(!key[KEY_ESC]) //Esto pone una condicion(que utilizaremos en capitulos posteriores)  {   } } int main()  { init(); //Ejecuta la funcion INIT juego(); //Cuando Termina INIT empieza JUEGO return 0; } END_OF_MAIN() //Necesario despues de un Main en Allegro  
y los errores son


--- Código: Text --- 56 [Warning] no newline at end of file   [Linker error] undefined reference to `set_gfx_mode'   [Linker error] undefined reference to `install_timer'   [Linker error] undefined reference to `install_keyboard'   [Linker error] undefined reference to `makecol'   [Linker error] undefined reference to `_imp__gfx_driver'   [Linker error] undefined reference to `_imp__gfx_driver'   [Linker error] undefined reference to `_imp__gfx_driver'   [Linker error] undefined reference to `_imp__gfx_driver'   [Linker error] undefined reference to `_imp__font'   [Linker error] undefined reference to `_imp__screen'   [Linker error] undefined reference to `textout_ex'   [Linker error] undefined reference to `_imp__key'   [Linker error] undefined reference to `_WinMain'   [Linker error] undefined reference to `_get_allegro_version'   [Linker error] undefined reference to `get_config_text'   [Linker error] undefined reference to `_imp__allegro_error'   [Linker error] undefined reference to `ustrzcpy'   [Linker error] undefined reference to `_install_allegro'   
Y otra cosa con que extension tengo que guardarlo??? o da igual??? utilizo .cpp

Geo:
Ok, ya compilaste, ahora los errores son del enlazador.

¿Si agregaste allegro a la lista de parámetros del enlazador? En las opciones del proyecto, debes tener -lalleg en los parámetros pasados al Linker (enlazador).

En cuanto a extensión de los archivos, usa la que corresponda al lenguaje que piensas utilizar en tu proyecto (cpp si es C++).

Saludos,
José Jorge (Geo).

palpatine16:
muchas gracias pero aora sale un error aunque no tiene importancia


--- Código: Text --- 56 [Warning] no newline at end of file   
q es esto?


porque funcionar si funciona. ya puedo ejecutarlo pero eso puede dar problemas???

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa