Programacion SDL
Enviado por jimylimy • 31 de Mayo de 2013 • 3.381 Palabras (14 Páginas) • 277 Visitas
rango de conjuntos de características
desde primitivas gráficas básicas, hasta
redes y soporte para tipografías True
Type (TTF). La mayoría de estas librerías
han sido enviadas por usuarios finales y
no forman parte del paquete principal de
SDL. Esto no es un problema en sí
mismo, pero si el propósito principal es
usar SDL para trabajar desarrollando
para varias plataformas, el desarrollador
habrá de asegurarse de que las librerías
que pretende utilizar se encuentran
disponibles para las plataformas con las
que vaya a trabajar, ya que no todas
están completamente soportadas.
La herencia de Windows en SDL es
muy evidente dentro de la API, tanto es
así que mucha de la terminología (y
muchas de las funciones) son muy parecidas
a sus equivalente en DirectX. A
pesar de ello, no se emula Windows de
ninguna manera. En cambio, cada llamada
a la API gráfica de SDL, por
ejemplo, utiliza directamente el controlador
desde el sistema operativo
anfitrión, bastante distinto a lo que sería
un sistema emulado.
En Windows, esto implicaría el uso de
DirectX. Bajo Linux, se utiliza una de las
librerías del dispositivo de gráficos,
como X11 o DGA. También está soportado
el control MTR (Memory Type
Range Register, [2]) aplicaciones aceleradas
a pantalla completa (véase el
Cuadro 1: Dispositivos).
La API de audio puede reclutar los servicios
de OSS, ESD o aRts para
suministrar música y efectos de sonido.
Gracias al hecho de que se utiliza el
acceso directo (en vez de la emulación) a
los dispositivos del sistema, se puede
lograr un gran nivel de rendimiento en
todas las plataformas.
¡Excavad, Excavad, Malditos!
Hay cientos de juegos SDL disponibles
en Internet y muchos de ellos están
disponibles con todo su código fuente.
Contribuiremos a esta colección con un
pequeño juego de plataformas llamado
Explorer Dug. Lo programaremos en C
(ya que probablemente sea la forma en
que se entenderá mejor), aunque se
puede escribir aplicaciones SDL en
muchos otros lenguajes, como PHP,
Ruby, Perl, Java y LISP. Principalmente
nos concentraremos en las características
de SDL y cómo usarlas para producir
un juego. También destacaremos las
áreas del desarrollo del juego que
requiere más trabajo de nosotros los programadores
¿De acuerdo? ¡Bien!
Comencemos…
Gran Bola de Fuego
La primera tarea es descargar e instalar
SDL. La versión actual estable es la
1.2.7, y está disponible desde [3] como
un archivo tar comprimido con gzip.
Además de distribuirse el código fuente,
están disponibles dos versiones binarias
SDL significa Simple DirectMedia
Layer y es una API multiplataforma
para programar aplicaciones
multimedia, como los juegos.
Aporta una base estable sobre la que los
programadores pueden trabajar, sin preocuparse
de cómo se encargará el
hardware de renderizarlo o incluso qué
hardware lo ejecutará.
SDL está disponible bajo la licencia
LGPL (Licencia Pública General Menor),
y como tal no requiere que el código
fuente de la aplicación que se base en
ella sea publicado.
Actualmente existen buenas implementaciones
de SDL para Linux (i386,
PPC, y PS2), BSD, Windows, Macintosh
OS 9/X, Solaris, Irix y BeOS.
Acceso versus Emulación
La API SDL está compuesta de cinco
subsistemas distintos: vídeo, audio,
CDROM, entrada de joystick y temporizadores.
Cada uno apunta a un área de
desarrollo diferente y puede ser inicializada
y usada independientemente de
los demás. Además, SDL fomenta el uso
de librerías que puedan suministrar
nuevas funcionalidades a la API básica.
Las dos librerías más comunes son
SDL_mixer (que proporciona un mejor
manejo de audio) y SDL_Image, que proporciona
soporte para una amplia
selección de formatos de ficheros gráficos,
incluyendo, GIF, JPG, PNG y TGA.
El sitio principal de SDL [1] lista 109 librerías
diferentes, actualmente en
producción, suministrando un amplio
En este artículo, el primero de una
serie, Steven Goodwin da un vistazo a
SDL. Qué es, cómo funciona y, lo que
es mucho más importante, cómo
usarlo para escribir un flamante
juego, Explorer Dug.
POR STEVEN GOODWIN
Creación de un juego
Programación con SDL
28 Número 01 www.linuxmagazine.com.es
Figura 1: La pantalla de bienvenida
SDL no está limitado a X11 como dispositivo
de salida.También puede usar dga,fbcon ¡y
hasta aalib! Para hacer uso de estas características,
debemos asegurarnos de que el
dispositivo apropiado se compila dentro de
SDL (lo cual requerirá otro ./configure,make,
make install del paquete).Entonces podrá
usar la variable de entorno SDL_VIDEODRIVER
para indicar que dispositivo quiere
usar.Por ejemplo:
export SDL_VIDEODRIVER=aalib
./explore
Puede encontrar una lista de los dispositivos
suministrados con SDL tecleando:
./configure -help | grep U
enable-video
Cuadro 1: Drivers
DESARROLLO SDL
028-032-juegos 22.11.2004 16:20 Uhr Seite 28
diferentes: Ejecución, runtime, y desarrollo
(development). Naturalmente, la
última proporciona mejores facilidades
de depuración, lo cual es más útil para
nosotros, como desarrolladores. De todas
formas recomiendo trabajar con las
fuentes ya que esto nos permite un
mejor ajuste y el uso completo de un
depurador para introducirnos en el mismísimo
código de SDL. Esto no solo es
útil en el seguimiento de errores, también
puede ser muy iluminador.
El archivo tar.gz se desempaqueta de
la manera habitual:
tar xfz SDL-1.2.7.tar.gz
Y se instala con el proceso igualmente
familiar:
./configure
make
make install
Por defecto, esto colocará las librerías
necesarias y los archivos incluidos en
/usr/local/lib y /usr/local/include/SDL
...