Albergado en:
Página del proyecto
|
|
Introducción
Allegro es una librería portable principalmente enfocada a
videojuegos y programación multimedia, originalmente escrita por
Shawn Hargreaves
para el compilador DJGPP en una mezcla de C y ensamblador.
Según el suplemento de música del diccionario Oxford, Allegro es la
palabra italiana para «rápido, vivo, brillante». Además
es un acrónimo recursivo de «Allegro Low
LEvel Game ROutines» [rutinas de bajo
nivel para videojuegos].
Soporte multi-plataforma
- Unix (Linux, FreeBSD, Irix, Solaris, Darwin)
- Windows (MSVC, MinGW, Cygwin, Borland)
- BeOS
- QNX
- MacOS X
- Dos (DJGPP, Watcom)
Funciones gráficas
- Dibujo vectorial:
- pixels, líneas, rectángulos, círculos, elipses, arcos, curvas Bezier
- relleno de figura, con o sin patrón
- polígonos: planos, sombreado Gouraud, texturizados y translúcidos
- Sprites:
- sprites con máscara, comprimidos y compilados
- blits, rotaciones, reescalado, alpha blending, Gouraud shading
- soporte nativo de ficheros BMP, LBM, PCX y TGA (otros soportados
por extensiones de la librería)
- Paletas de color:
- manipulación de paletas de color (lectura, escritura, conversión)
- conversión entre formatos de color RGB <-> HSV
- Texto:
- soporte para diferentes codificaciones y conversiones, por
defecto en UTF-8
- fuentes bitmap (transparente, coloreado, alineamiento)
- Miscelánea:
- dibuje directamente en la pantalla o en bitmaps de memoria de
cualquier tamaño
- scroll por hardware y triple buffering (donde sea disponible),
pantalla partida en modo-X
- funciones de animación para el formato FLI/FLC
Drivers gráficos
- Unix:
- X Window, DGA, fbcon
- SVGAlib
- VBE/AF
- mode-X
- VGA
- Windows:
- DirectX (en ventana o pantalla completa)
- GDI
- MacOS X:
- Quartz (en ventana o pantalla completa)
- BeOS:
- BWindowScreen
- BDirectWindow
- Dos:
- modo VGA 13h
- modo-X (23 resoluciones VGA más el modo extendido desencadenado 640x400)
- modos SVGA en 8, 15, 16, 24 y 32 bits por pixel
- acceso lineal al framebuffer con VBE 2.0
- aceleración por hardware a través de la API VBE/AF si está soportada
- drivers gráficos adicionales por el proyecto FreeBE/AF
- OpenGL:
- La extensión AllegroGL
permite usar gráficos OpenGL con Allegro.
Funciones de sonido
- Midi:
- soporte nativo del formato MIDI (con 64 efectos simultáneos)
- control/respuesta dinámica a los eventos note on, note off,
main volume, pan, pitch bend y program change
- usa conjuntos musicales General MIDI
- puede usar sonidos digitales pregrabados para los ficheros midi
(SF2 y parches GUS)
- Wave:
- soporte nativo de ficheros WAV y VOC (reproducción contínua
hacia delante, atrás o bidireccional)
- flujos de audio
- modifique el volúmen, la panoramización, la frecuencia, etc
durante la reproducción
Drivers de sonido
- Unix:
- OSS
- ALSA (0.5/0.9/1.0)
- ESD
- aRts
- JACK
- SGI AL
- Windows:
- DirectSound
- WaveOut
- drivers MIDI del sistema
- MacOS X:
- Core Audio
- Sound Manager
- Core Audio MIDI
- QuickTime MIDI
- Dos:
- Adlib, SB, SB Pro, SB16, AWE32
- MPU-401
- ESS AudioDrive
- Ensoniq Soundscape
- Windows Sound System
Rutinas matemáticas
- rutinas aritméticas y trigonométricas en punto fijo
- tablas trigonométricas precalculadas
- manipulación de vectores/matrices/cuaterniones 3d (translación,
rotación, escalado, proyección)
Miscelánea
- gestión de ratón, teclado y joystick
- temporizadores por interrupciones de alta velocidad (resolución
de 10, 5 o menos ms dependiendo de la plataforma)
- simulador de retrazo vertical
- manipulación de ficheros de configuración
- manipulación de ficheros comprimidos en formato LZSS
- manipulación de ficheros de datos multi-objeto comprimidos
- herramienta para crear ficheros de datos (grabber)
- simple interfaz gráfica (GUI) para diálogos y selector de ficheros
Soy nuevo con Allegro, ¿qué debería hacer?
Antes de nada, ¡bienvenido! Dependiendo de sus habilidades querrá
comenzar de forma distinta.
Si es totalmente ajeno a la programación en C, Allegro no le ayudará
mucho. Al ser una librería de C (donde C es el nombre de un lenguaje
de programación), Allegro asume que sabe escribir programas en C,
compilarlos y enlazarlos para producir un ejecutable. Lo sentimos,
pero tendrá que aprender primero a hacer eso. Puede usar un motor
de búsqueda como Google para
buscar tutoriales y documentación sobre programación en C, o quizás
prefiera comprar un libro. C es un lenguaje de programación muy
conocido con muchos años a sus espaldas, así que no debería tener
problemas para encontrar información sobre él.
Si ya sabe cómo escribir programas en C pero no tiene los
conocimientos para escribir videojuegos, entonces disfrutará
aprendiendo y usando Allegro. Obviamente primero querrá descargar Allegro. Le recomendamos
que obtenga una versión estable. Allegro trae una buena documentación
de referencia y más de 40 ejemplos que le ayudarán a comenzar con
cosas básicas y de ahí en adelante mejorar sus habilidades. Incluso
puede jugar un pequeño juego demo donde su misión es destrozar
asteroides. La misma documentación que se genera con Allegro puede
encontrarla online aquí, y hay
muchos tutoriales e incluso algunos libros que le permitirán
extender aun más su conocimiento.
Si es usted un programador experimentado, puede obtener una idea
rápida de cómo son los programas con Allegro ojeando la API o leyendo
los ejemplos que trae. Allegro intenta facilitar la tarea de crear
juegos todo lo posible, intentando mantener a la vez suficiente
flexibilidad para que pueda usar todo el poder de bajo nivel que
desee usar.
Y sea un programador inexperto o nó, debería saber que hay varias
posibilidades para ponerse en contacto con otros usuarios de
Allegro. Hay unas cuantas listas
de correo a las que puede apuntarse. Normalmente están en
silencio hasta que alguien comienza una buena discusión y el resto
comienza a mandar respuestas. Para aquellos que no les gusta el
correo, Allegro.cc es un foro
web con una mayor participación (y razón señal-ruido). No dude en
comunicar sus ideas y proyectos actuales. A todo el mundo le gusta
ver un juego que usa Allegro hasta los límites, y más si proporciona
el código fuente para que otros puedan aprender de él.
|