Programación de videojuegos

Solo disponible en BuenasTareas
  • Páginas : 12 (2845 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de octubre de 2010
Leer documento completo
Vista previa del texto
Introducción a la programación de videojuegos
David Erosa García Luis Rodero Morales

ascii@talika.eii.us.es

tf2@talika.eii.us.es

Acceso al hardware
Allegro y SDL

Introducción
Consiguiendo las librerías



Allegro puede conseguirse en http://alleg.sf.net. Su última versión es la 4.1.13.

• • •

En http://www.allegro.cc hay todo tipo de addons y utilidades, además denumerosos juegos (con su código fuente (o no)).

SDL, cuya última versión es la 1.2.7, al igual que sus addons y juegos, se puede encontrar en http://libsdl.org .

Ambos pueden descargarse de dos formas:

• •

Está el código fuente listo para ser compilado. En versión precompilada (Dev-C++, MinGW32, MSVC, paquetes para distintas distribuciones GNU/Linux...).

3

Introducción
Compilando -Allegro



Para compilar un programa Allegro en GNU/Linux: g++ `allegro-config --libs --cppflags` main.cpp -o prueba

• • •

Esta línea genera como salida un ejecutable 'prueba' a partir de un fuente 'main.cpp'.

Para Dev-C++ hay paquetes de desarrollo preparados que generan proyectos Allegro listos para ser compilados. Dado que el código fuente está disponible, es muy sencilloadaptarlo a las necesidades de nuestro compilador (p.ej. MS-Visual-C++).

4

Introducción
Compilando - SDL



La compilación de un programa SDL en GNU/Linux es muy sencilla: g++ `sdl-config --libs --cflags` $(LIBS) main.cpp -o prueba



Donde LIBS depende de las librerias extras que vayamos a usar:

• • •

• • •

-lSDL_image para SDL_image. -lSDL_mixer para SDL_mixer. -lSDL_ttf paraSDL_ttf...

Esta línea genera como salida un ejecutable 'prueba' a partir de un fuente 'main.cpp'.

Para Dev-C++ hay paquetes de desarrollo preparados que generan proyectos SDL listos para ser compilados. Dado que el código fuente está disponible, es muy sencillo adaptarlo a las necesidades de nuestro compilador (p.ej. MS-Visual-C++).
5

Inicialización - Finalización
Allegro

• • • • •Siempre hay que incluir la cabecera “allegro.h”. Para inicializar la librería, basta con llamar a la macro allegro_init ()



Configura varios parámetros relacionados con el sistema operativo.

Devuelve 0 siempre, si no puede inicializarse aborta la ejecución. Para cerrar la librería, se llama a la función allegro_exit () (no es necesario) Justo después de la llave de cierre de main, hayque llamar a END_OF_MAIN ().

6

Inicialización - Finalización
SDL

• • • • •

Siempre hay que incluir “SDL.h” Opcionalmente: “SDL_image.h”, “SDL_mixer.h”, “SDL_ttf.h”... SDL se inicializa con: int SDL_Init (Uint32 flags)

• •

Devuelve -1 en caso de error, 0 en caso de éxito. Los flags determinan los subsistemas a inicializar.

Pueden inicializarse y terminarse subsistemasindividuales int SDL_InitSubSystem (Uint32 flags) void SDL_QuitSubSystem (Uint32 flags) Se finaliza el uso de SDL con void SDL_Quit (void)

7

Lo que vamos a ver • • • • • •
Empezando Funciones de entrada. Funciones de sonido. Funciones de cronometrado. Funciones gráficas.

Red y eso pa otro año... :P

8

Empezando...
Iniciar un modo gráfico



En Allegro: int set_gfx_mode (int card,int w, int h, int v_w, int v_h)

• • •

Luego veremos qué significan los parámetros. En principio haremos la llamada de la siguiente forma: set_gfx_mode (GFX_AUTODETECT_WINDOWED, 320, 240, 0, 0);

En SDL: SDL_Surface* SDL_SetVideoMode (int w, int h, int bpp, Uint32 flags)

• •

Luego veremos qué significan los parámetros. La llamada que haremos será: screen = SDL_SetVideoMode (320, 240,0, SDL_ANYFORMAT);

9

Funciones de entrada
Introducción



Veremos cómo acceder a dispositivos como:

• •

• • •

Teclado. Ratón. Joystick - Gamepad.

Hay multitud de métodos relacionados con cada dispositivo en ambas librerías, así que sólo veremos los que vayamos a usar posteriormente (por simplicidad). En SDL puede consultarse el estado de los dispositivos mediante...
tracking img