@@ ¿Dónde puedo conseguirlo?
De cualquier mirror de SimTel, en el directorio gnu/djgpp/v2tk/, o
desde la página web de Allegro,
http://alleg.sourceforge.net/.
@@ ¿Cómo lo uso?
Lea allegro.txt.
@heading
Problemas con DJGPP
@@ ¿Qué es este programa make que se supone debo ejecutar?
Make es parte de la distribución estándar de djgpp, en
v2gnu/mak*b.zip (el numero de la ultima versión). Puede obtenerlo de
http://www.delorie.com/djgpp/.
@@ Make no funciona adecuadamente.
¿Está seguro de que tiene djgpp instalado correctamente? Revise las
instrucciones del fichero de djgpp readme.1st, y en particular cuide
haber ajustado la variable de entorno de DJGPP y añada el directorio
djgpp\bin a su path.
@@ Mi instalación de djgpp está bien, pero make todavía trabaja mal.
¿Está seguro de estar usando el programa make de GNU, en vez de algún
otro como el de Borland? Si no lo sabe, ejecute "make -v" y compruebe
que visualiza el mensaje de copyright de GNU.
@@ Cuando ejecuto make, me pide unos parámetros. ¿Que debo teclear?
¡No debería ejecutar make desde el explorador de Win95! Abra una
sesión de DOS, vaya al directorio de Allegro, y ejecute "make" desde la
línea de comandos.
@@ Cuando ejecuto make, dice "makefile has modification time in the future".
¿Seguro que tiene la fecha del sistema ajustada correctamente?
@@ Cuando ejecuto make, dice "virtual memory exhausted".
Tal y como el mensaje de error sugiere, necesita liberar más memoria
para el compilador. El programa go32-v2 le dirá cuanta tiene
disponible. Si está en DOS, intente liberar espacio de disco duro para
los ficheros temporales. Bajo win95, incremente el límite de memoria
DPMI en las propiedades de su sesión DOS a 65535 (tendrá que escribir
esto a mano, ya que la lista desplegable sólo llega hasta 16384).
@@ Cuando intento compilar un programa usando Allegro, recibo muchos
errores como:
C:\TEMP\ccdaaaaa(.text+0x9):x.c: undefined reference to `allegro_init'
C:\TEMP\ccdaaaaa(.text+0xe):x.c: undefined reference to `install_keyboard'
No ha leído los manuales, ¿lo hizo? :-) Necesita enlazar su programa
con la biblioteca de funciones, liballeg.a. Primero, asegúrese de que
ha instalado todo correctamente (ejecutar make debería hacer esto por
usted). Segundo, si esta compilando desde la línea de comandos o desde
un makefile, añada -lalleg al final de su línea de comando de gcc, o
si esta usando Rhide, vaya al menú Options/Libraries, entonces teclee
'alleg' en la primera línea vacía, y asegúrese de que la caja al lado
esta marcada.
@@ Me doy por vencido: ¡No puedo compilar esto! Por favor, ¿podrías mandarme
una versión precompilada?
No, lo siento. Para empezar, liballeg.a ocupa unos 450k, pero
probablemente querrá varias utilidades como el grabber, la
configuración de sonido, etc. ¿Y que hay de los programas de ejemplo?
Si incluyese la versión compilada de todo, la distribución binaria
sobrepasaría las 7 megas: ¡demasiado grande para ser práctico! Pero
seriamente, no hay ninguna razón por la que no pueda compilar la
librería usted mismo. El compilado de un programa es un proceso
determinista: dado un fichero de entrada particular y una línea de
comando, siempre producirá la misma salida. Si esto no funciona, o
tiene ficheros de entrada incorrectos (su copia de Allegro esta
estropeada en algún sentido), o la línea de comandos es incorrecta (es
difícil que eso suceda, ya que solo tiene que teclear "make"...) o su
compilador está estropeado, por ejemplo, si no instala djgpp
correctamente. Necesita solucionar el problema en vez de ocultarlo
bajo la alfombra consiguiendo que otro compile Allegro por usted...
@@ ¡Los errores de compilación aparecen demasiado rápido para que los
pueda leer!
Las herramientas GNU escriben los mensajes de error a stderr.
Desafortunadamente, command.com es demasiado estúpido para redirijir
el flujo, pero afortunadamente DJ fue suficientemente listo para
evitar esto, por lo que puede usar su programa redir para capturar
los mensajes de salida, por ejemplo "redir -eo make > logfile.txt".
@heading
Problemas en DOS
@@ ¿Funciona la versión DOS de Allegro bajo Windows NT?
Las respuestas pueden variar. Algunas personas dicen que hay
problemas, mientras que otras dicen que todo funciona bien.
Personalmente no tengo acceso a NT, por lo que no hay nada que pueda
hacer por esto, y para ser sincero, no me importa mucho :-) Si quiere
ejecutar programas DOS, ¡use el DOS!
@@ ¿Funciona Allegro bajo OpenDos?
Si, pero con problemas. Si está usando la versión OpenDOS de EMM386,
debe desactivar su implementación DPMI (especifica DPMI=OFF en la
línea del driver EMM386.EXE de tu config.sys). También debería
acordarse de activar la bandera PIC=OFF, pero ese es el estado por
defecto, por lo que no habría problemas con ello a no ser que lo haya
cambiado antes.
@@ ¿Cómo puedo extender el limite de 256k de memoria de vídeo en Modo-X?
Tengo dos megas en mi tarjeta.
No puede. El límite está impuesto por el hardware de la VGA, no por
Allegro. Para acceder a más de 256k de memoria de vídeo necesita usar
un modo SVGA, lo cual significa cambiar a una resolución mayor o
conseguir una copia del programa SciTech Display Doctor, el cual
provee algunos modos SVGA de baja resolución.
@@ ¿Funciona la versión DOS de Allegro con la tarjeta de sonido SB-Live?
Para algunas personas si, pero no para otras. El problema es que
Creative Labs se niega a revelar información interna sobre la tarjeta,
por lo que no podemos escribir un driver para ella. Quéjese a ellos, o
compre una tarjeta de un fabricante diferente más razonable.
@@ ¿Por qué la versión DOS de Allegro reproduce los sonidos con menos
volumen que la versión Windows?
Esto puede ser porque tiene el volúmen muy bajo: pruebe modificarlo
desde el programa setup. Además, Allegro mezcla varios sonidos en un
solo buffer de salida, a diferencia del reproductor de sonidos de
Windows que sólo reproduce un sonido a la vez, por lo que cada sonido
individual sólo puede obtener un porcentaje del volumen total de
salida. Este es el precio que hay que pagar por el mezclado múltiple
de canales. Si no le gusta, use el programa setup para alterar el
número de canales: el número puede ser una potencia de dos menor o
igual a 64, y cuanto menor sea, mayor será el volúmen del sonido.
Alternativamente, use set_volume_per_voice(), tal y como se describe
en la documentación. Esto le permite ajustar el volumen general de
la salida de sonido digital de Allegro.
@@ ¿Por qué no funciona con mi tarjeta de vídeo?
Pruebe usar un driver FreeBE/AF (http://www.talula.demon.co.uk/freebe/),
o el programa comercial SciTech Display Doctor (http://www.scitechsoft.com).
Si sigue sin funcionar, publique una descripción de su problema a la
lista de correo de Allegro, junto con una copia de la salida que
producen los programas afinfo y vesainfo.
@@ ¿Por que no usar algún tipo de sistema de enlazado dinámico?
La interfaz VBE/AF ya proporciona eso para los drivers de vídeo:
compruebe el proyecto FreeBE/AF en http://www.talula.demon.co.uk/freebe/.
Para cosas más generales como las rutinas de sonido, VESA, y las
rutinas del modo-X, esto sería terriblemente difícil de conseguir
debido a que los drivers dependen mucho de las rutinas de ayuda del
núcleo de la biblioteca. El formato DXE no es lo suficientemente
flexible como para soportar esto, y no quiero que Allegro dependa de
otros paquetes de enlazado dinámico.
@@ ¡Obtengo el error "out of environment space" al ejecutar fix.bat o
vcvars32.bat!
Bueno pues, entonces necesita incrementar el tamaño de su entorno :-)
Puede hacer esto alterando la configuración de su sesión DOS (haga
click en el menú de sistema y seleccione "propiedades"), o en el
arranque de su config.sys (ej: añada "shell=c:\command.com /e:8192").
@heading
Problemas en Windows
@@ ¡Obtengo multitud de errores de compilación con "LPDIRECTDRAWSURFACE2"!
Necesita indicarle a su compilador dónde encontrar los ficheros de
cabecera y librerías de DirectX: ponga las rutas de los directorios
/include y /lib del kit de desarrollo DirectX en la ruta de su
compilador/enlazador. Alternativamente, si no quiere modificar nada de
su configuración, puede copiar directamente esos ficheros del kit de
desarrollo de DirectX a los directorios correspondientes de su
compilador.
@@ Obtengo cantidad de errores de compilación con "DDEDM_STANDARDVGAMODES"!
Necesita actualizarse a una versión más reciente del SDK de DirectX,
como mínimo versión 5, que puede obtener de la web del desarrollador
de Microsoft.
@@ ¡Obtengo errores sobre una función WinMain() o main() que falta!
Necesita escribir END_OF_MAIN() justo tras su función main(). Allegro
usa esto, junto con algo de magia del preprocesador, para convertir
su función main() normal en un punto de entrada WinMain() al estilo
Windows.
@@ ¡Obtengo el error "out of environment space" cuando ejecuto fix.bat o
vcvars32.bat!
Oh bueno, entonces necesita incrementar el tamaño de su entorno :-)
Puede hacer esto modificando los parámetros de su ventana DOS (pinche
en menú de sistema y seleccione "propiedades"), o al arrancar en su
fichero config.sys (ej: "shell=c:\command.com /e:8192").
@heading
Probelmas Unix
@@ ¡Obtengo errores sobre un "_mangled_main_address" no definido!
Necesita escribir END_OF_MAIN() justo tras su función main(). Allegro
usa esto, junto con algo de magia del preprocesador, para obtener una
copia de sus parámetros argv[] (los necesita para varias cosas
internas).
@@ ¡Los errores de compilación aparecen demasiado rápido para que los
pueda leer!
Necesita redirigir stderr a un fichero, para poder verlo luego. El
métido para hacer esto depende del intérprete de comandos: si está
usando un intérprete al estilo Bourne, como bash, pruebe
"make 2> logfile.txt".
@@ Cuando intento usar DGA2, obtengo "resolution not supported", ¡pero el
servidor X realmente soporta esa resolución!
Hay dos posibles razones:
1) DGA2 puede soportar diferentes resoluciones/profundidades de color
que X, ejecute el programa gfxinfo para saber qué combinaciones
puede usar,
2) Puede tener una instalación DGA2 con fallos, lea la siguiente
pregunta.
@@ Cuando intento usar DGA2, ¡la pantalla se pone negra y el PC se bloquea!
Probablemente esté usando un servidor XFree86 con una implementación
DGA2 errónea, como la 4.0.3 (empaquetada con Red Hat 7.1 por ejemplo).
Actualizarse a la 4.1.0 probablemente solucionará su problema. Puede
obtenerla de ftp://ftp.xfree86.org/pub/XFree86/4.1.0/binaries/ tras
seleccionar el directorio apropiado para su plataforma según indican
las instrucciones del fichero Install.
@heading
Problemas generales
@@ Estoy intentando compilar el programa grabber, ¡pero no funciona!
El grabber debe ser enlazado con el código en datedit.c. Pero no se
debería preocupar por hacer esto a mano: simplemente ejecute "make" y
eso recompilará todo para usted.
@@ Cuando compilo Allegro, el make falla con algo como `Error: operands
given don't match any known 386 instruction' o `Error: no such
instruction `maskmovq %mm3, %mm1''.
Necesita actualizar su versión de GNU binutils. Lea readme.txt para
descubrir la versión mínima requerida que necesita.
@@ ¿Puedo usar Allegro con mi compilador <foobar>?
No a no ser que <foobar> esté mencionado en readme.txt como una de
las plataformas soportadas. Usted podría adaptar Allegro a ese
compilador, pero eso suele significar mucho trabajo. Si <foobar> es
un compilador de 16 bits para DOS como Borland C, puede olvidar
inmediatamente la idea :-)
@@ ¿Qué es eso de "Allegro WIP" que otras personas no dejan de mencionar?
WIP significa "work in progress" (versión en desarrollo), y se refiere
a los cambios más recientes en Allegro desde la última versión oficial.
Las versiones WIP de Allegro pueden obtenerse como parches de la página
web de Allegro (http://alleg.sourceforge.net/), y
normalmente son bastante estables, aunque no tan bien comprobadas como
una versión final.
@@ Consequí el parche WIP, pero no lo puedo aplicar.
¿Tiene una copia de patch.exe? Si no, vaya a conseguirla del mismo
lugar que consiguió el resto de djgpp: es una herramienta estándar de
la distribución del compilador. Si tiene el programa patch pero no
funciona correctamente, asegurese de que está instalando el parche
encima de la versión no modificada de Allegro que esté intentando
actualizar. (esta normalmente es la versión oficial más reciente antes
de la WIP, pero compruebe el fichero de texto que viene con la WIP
para estar seguro).
@@ Cuando ejecuto la demo, dice que no puede encontrar demo.dat.
Este fichero se distribuye por separado en las versiones WIP. Está en:
http://alleg.sourceforge.net/wip.es.html. (alldata.zip)
@@ ¿Cómo puedo dibujar diferentes imágenes el mismo tiempo? Cuando dibujo la
siguiente, ésta estropea la paleta de colores de la primera.
Por supuesto: ¡así es como funciona el hardware de video! Sólo puede
haber una paleta de colores usada en un mismo momento. O convierte sus
imágenes para que usen la misma paleta o cambia a un modo gráfico
truecolor.
@@ ¿Cómo puedo convertir mis gráficos para que usen la misma paleta de 256
colores?
Busque en la página web de Allegro.cc (http://www.allegro.cc/)
algunas utilidades, como por ejemplo FixPal y Smacker.
@@ Mis colores siempre salen mal. ¿Cómo puedo hacer una paleta de grises con
256 tonos de gris?
El hardware de la VGA solo usa 6 bits para cada componente del color,
lo que significa que los valores de los colores rojo, verde y azul van
desde 0 a 63 en la paleta de colores, sin llegar a 255. Esto le da un
potencial de 2^18 = 262144 colores diferentes o 64 tonos de gris. Si
necesitas más, puede usar la función de la VESA 0x4F08 para
seleccionar un ancho de DAC de 8 bits, pero Allegro no soporta esto
directamente, y no se si esto se podría hacer en diferentes
ordenadores con hardware diferente.
@@ ¿Cómo es que en mi pantalla aparece un color en los bordes de mi monitor?
Cuando está en un modo de 256 colores, la tarjeta VGA muestra el color
#0 alrededor del área de visualización (en modos truecolor usa el
color negro). El color desaparecerá en cuanto cambie la entrada #0 de
su paleta de colores para que sea negra.
@@ ¿Cómo puedo hacer un fundido de pantalla en un modo gráfico truecolor?
Con gran difficultad :-) No existe un truco tan sencillo como alterar
la paleta de colores, por lo que tendrá que redibujar la pantalla más
clara u oscura. Podría dibujar rectángulos negros translúcidos sobre la
pantalla para oscurecerla, o usar draw_lit_sprite() para colorear el
bitmap mientras lo copia a la pantalla, pero tenga la certeza que estas
operaciones son costosas y requieren un PC rápido.
@@ He intentado usar fade_in() y fade_out() en modos truecolor pero no
ocurre bada. ¿Qué estoy haciendo mal?
fade_in() y fade_out() sólo funcionan en modos de 8-bits con paleta.
Uno de los modos para hacer un fundido de bitmap es recorrer todos los
pixels y cambiarlos individualmente. Una alternativa es dibujar muchos
recuadros negros translúcidos sobre la pantalla. No obstante, estos
métodos pueden ser lentos. El ejemplo exxfade.c demuestra cómo hacer
fundidos entre dos bitmaps. Puede modificarlo para que haga fundidos
de/hacia una pantalla negra. Lea también la pregunta anterior.
@@ ¿Cómo puedo generar animaciones en formato FLI o FLC?
Mire en la página web de Allegro (http://alleg.sourceforge.net/)
y busque algunas utilidades, como por ejemplo DTA y Smacker.
@@ ¿Cómo puedo hacer partes de mis sprites transparentes en modos
truecolor? No entiendo la documentación cuando dice "rosa fucsia"...
En su programa de dibujo favorito, busque las barras de desplazamiento
RGB y arrastre las barras roja y azul tan alto como pueda (normalmente
hasta 255, pero depende de las unidades que use el software), y la
barra verde a cero. Esto creará una sombra de rosa fucsia, o como
otras personas prefieren llamarlo, magenta.
@@ ¡No consigo que las rutinas de polígonos en 3D funcionen!
Recuerde que las posiciones de los vértices son almacenadas en formato
de punto fijo, debe usar la macro itofix() para desplazar sus
coordenadas 16 bits a la izquierda.
@@ ¡No consigo que la función rotate_sprite() funcione!
Recuerde que el ángulo de rotación es almacenado en formato de punto
fijo, por lo que debe usar la macro itofix() o desplazar sus
coordenadas 16 bits a la izquierda. Por ejemplo, rotate_sprite(bmp,
spr, x, y, itofix(32)) rotará el gráfico 45 grados.
@@ ¡No consigo que el objecto GUI d_icon_proc() funcione!
Probablemente está intentando inicializar la estructura de diálogo con
un puntero a su bitmap, ¿verdad? Eso no funcionará porque el diálogo
es creado en tiempo de compilación, pero el bitmap es cargado en
tiempo de ejecución, por lo que el compilador todavía no sabe dónde
estará localizado. Necesita rellenar la estructura de diálogo con un
puntero nulo, y entonces copiar el puntero del bitmap real en el campo
dp como parte de su código de inicialización, tras haber cargado el
bitmap en la memoria.
@@ ¿Debo usar bitmaps, sprites RLE o sprites compilados?
Depende de lo que esté haciendo. Si sus imágenes son totalmente
opacas, no habrá ventaja al usar un sprite RLE, y probablemente será
más rápido si usa la función blit(). Si su gráfico tiene áreas
transparentes, un sprite RLE será casi siempre más rápido y pequeño
que la función draw_sprite(). Los sprites compilados son por regla
general un poco más rápidos que las otras funciones para imágenes
transparentes y bastante más rápidas para gráficos opacos, pero esto
puede variar. Se usan mejor con sprites pequeños en máquinas antiguas
en modo-x, y podrían ser más lentos que blit() si los usas en modos de
vídeo SVGA en un pentium (el gran tamaño de los sprites compilados
afecta severamente la efectividad del cache).
@@ ¿Cómo hago para que mi juego vaya a la misma velocidad en cualquier
ordenador?
Debe asegurarse que la lógica de su juego se actualiza a una
velocidad constante, pero se salta el refresco de la pantalla de vez
en cuando si el ordenador es muy lento. Esto puede hacerse instalando
un temporizador que incrementará una variable global a la velocidad de
la lógica de su juego, eg:
volatile int speed_counter = 0;
void increment_speed_counter()
{
speed_counter++;
}
END_OF_FUNCTION(increment_speed_counter);
void play_the_game()
{
LOCK_VARIABLE(speed_counter);
LOCK_FUNCTION(increment_speed_counter);
install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));
while (!game_over) {
while (speed_counter > 0) {
update_game_logic();
speed_counter--;
}
update_display();
}
}
@@ ¿Cómo puedo capturar una pantalla de mi programa que usa Allegro?
Añada una llamada a save_bitmap() en alguna parte del código. Lea en
la documentación de save_bitmap() una explicación de uno de los fallos
más comunes al usar la función, y un poco de código fuente.
@@ ¿Cómo puedo generar un número aleatorio?
Llame srandom(time(NULL)) al principio de su programa, y entonces use
random()%límite para obtener un número pseudo-aleatorio entre 0 y
límite-1.
@@ ¿Por qué no hacer una versión "lite" de Allegro? No necesito ninguna de
las rutinas de sonido, matemáticas o GUI...
No hay necesidad de hacerlo. El enlazador sólo incluye partes de la
biblioteca que realmente usa, por lo que si no llama ninguna de las
rutinas de mapeado de texturas o reproducción de FLICs, éstas no se
añadirán a su ejecutable. Esto no funciona perfectamente porque hay
mucho código de Allegro que usa tabla de punteros a funciones que
hacen que rutinas innecesarias se enlacen con tu código, por lo que la
mayoría de las funciones de gráficos serán incluidas en cada
ejecutable, pero he intentado reducir esto al mínimo. Mire allegro.txt
para más información sobre métodos precisos para quitar algunos
controladores de gráficos y sonido.
@@ ¿Añadirás alguna vez soporte para las tarjetas aceleradoras 3D?
No. Creo que este tipo de soporte hardware sería mucho más util como
parte de un API 3D, cosa que Allegro no es (y nunca será). Si quiere
trabajar en esto, la biblioteca MESA (una implementación libre de
OpenGL) es en mi opinión el lugar a mirar.
@@ ¿Por qué no añadir una función de reproducción de MODs?
Ya existen varias muy buenas actualmente, por ejemplo el paquete
JGMOD. Siga los enlaces de la página web de Allegro.cc
(http://www.allegro.cc/). No se le permite que sugiera que
alguna de las bibliotecas existentes sea incluída en Allegro, porque
este tópico ha sido discutido hasta la muerte en la lista de correo
y estoy cansado de él.
@@ ¿Por qué no añadir soporte de red?
Eso sería un montón de trabajo, y no tengo tiempo para hacerlo. Hay
varios paquetes de soporte de red actualmente en desarrollo o flotando
por la red, y en mi opinión este tipo de código es más útil como
biblioteca externa que como parte de Allegro.
@@ ¿Por qué no puedo leer ficheros GIF con Allegro?
Unisys tiene la patente en el algoritmo de compresión LZW que es usado
en el formato GIF. Quiero que Allegro sea totalmente libre y sin
restricciones, lo que significa que no puedo incluir ningún código que
haya que licenciar o pagar por derechos de autor.
@@ Mi programa se bloquea todo el tiempo. ¿Puede ser debido a un fallo de
Allegro?
Quizás. Intente aislar el fragmento de código mas pequeño que es capaz
de reproducir el problema, y lo mirare. Si puede mandarme un programa
de 10 líneas, lo solucionaré. Probablemente podría solucionar uno de
100 líneas. 1000, y no tengo ninguna oportunidad :-)
@@ ¿Puedo usar Allegro en mi programa comercial?
Claro. Lea las condiciones giftware en readme.txt. No me importa lo
que haga con él, yno hay problemas con el uso comercial.
@@ ¿Cuando se terminará Allegro? No puedo esperar...
¡Cuando este acabado! Los ánimos son bienvenidos, pero no tengo fechas
fijas de lanzamiento y no voy a hacer una para usted. Tan pronto como
este hecho, será puesto al público.
@@ ¿Dónde puedo encontrar fuentes para usar con Allegro?
Grabber puede importarlas directamente de ficheros .fnt con formato
GRX o BIOS, o puede dibujarlas usted en una imagen .pcx con cualquier
programa. Busque en la página de Allegro una utilidad (ttf2pcx) que
convierte fuentes Windows TrueType a formato .pcx.
@@ ¿Dónde puedo encontrar un conjunto de samples de instrumentos para el
controlador DIGMID?
En la página web de Allegro (http://alleg.sourceforge.net/) hay
algunos enlaces. Puede usar los patches de la Gravis (formato .pat), o
ficheros SoundFont 2.0 (.sf2), pero éstos últimos deberán ser
convertidos a un fichero patches.dat con la utilidad pat2dat.
@@ ¿Cómo convierto la documentación en el formato de Ayuda de Windows?
Necesita la utilidad de conversión makertf
(ftp://ftp.coast.net/Coast/win3/winhelp/mkrtf104.zip), y el compilador
de Ayuda Windows (ftp://ftp.microsoft.com/Softlib/MSLFILES/HC505.EXE).
Cree un directorio temporal, copie ahí el fichero allegro.txi del
directorio allegro/docs, y ejecute los comandos "makertf --no-warn
allegro.txi -o allegro.rtf -J allegro.hpj" seguido de "hcp
allegro.hpj". El segundo comando dará muchos errores, pero pueden ser
ignorados con tranquilidad.
@@ ¿Cómo puedo imprimir la documentación?
El fichero allegro.rtf puede ser leído directamente por Microsoft Word
e impreso desde ahí, pero debería pinchar con el botón derecho y
actualizar los cambos de la tabla de contenido e índice para que
primero sean rellenados con datos correctos. Alternativamente puede
instalar el pack TeX y usar los programas tex y dvips para contertir
allegro.txi en formato Postscript.
@@ ¿Dónde puedo encontrar ejemplos de código fuente de programas que usan
Allegro, bibliotecas adicionales y tutoriales?
Mire la página web de Allegro, http://alleg.sourceforge.net/.
Si tiene algo que añadir a esto, ¡por favor, mándeme la URL!
@@ ¿Por qué se considera buena práctica en programación el definir PI como
una constante en vez de usar el valor 3.141592 en mi código?
Es la forma mas simple de actualizar su programa, en caso de que haya
que cambiar el valor de PI. Esto también hará su programa más portable
a otros compiladores que usen otros valores de PI.
@@ ¿Por qué parece que vsync() no funciona?
Un número de tarjetas gráficas tienen versiones erróneas o incompletas
de la implementación VESA, y a menudo la función vsync() no está
implementada. Para ver ejemplos de dibujado sin parpadeos, mire el
código del juego demo, el cual usa varios métodos para dibujarse.
@@ ¿Por qué hacer una espera activa del array key no funciona? Por ejemplo,
"while (!key[KEY_ENTER]);" no funciona.
Si el código funciona sin optimizaciones, podría ser un fallo de su
compilador. Puede intentar forzar al compilador a hacer lo que desea
mediante el siguiente ejemplo:
while (!key[KEY_ENTER])
yield_timeslice();
En este caso, no obstante, sería mejor usar readkey() en su lugar.
O considerar actualizar o desactualizar su compilador.
@@ Todavía estoy confundido. ¿Dónde pueden ayudarme?
Mire http://alleg.sourceforge.net/maillist.es.html.