ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Introduccion a SDL


Enviado por   •  19 de Noviembre de 2019  •  Tarea  •  1.967 Palabras (8 Páginas)  •  96 Visitas

Página 1 de 8

Practica 6

Entorno grafico en leguaje C: SDL

Simple DirectMedia Layer (SDL)

Es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones, gestión de efectos de sonido y música, además de carga y gestión de imágenes.

La biblioteca se distribuye bajo la licencia LGPL, que es la que ha provocado el gran avance y evolución de SDL.

SDL y los subsistemas

Un subsistema engloba a una parte específica del hardware con un propósito específico. En SDL es una parte de la librería que nos ofrece soporte a diferentes partes del hardware.

Los subsistemas soportados por SDL son:

Subsistema de Video: Engloba todo lo referente al hardware de video y lo referente a los gráficos. Subsistema de Audio: Es el encargado de la reproducción de sonidos y de la gestión del hardware destinado al audio.

Subsistema de Gestión de Eventos: Es la base de la interactividad con el usuario y con ciertos aspectos del sistema. Con este subsistema sabemos, por ejemplo, que desea hacer el usuario. Joysticks: Al no existir un estándar este subsistema nos permite un mayor control sobre los dispositivos de juegos.

CD-ROM: Nos permite controlar la reproducción de CD-Audio.

Timers: Nos permite sincronizar nuestro videojuego para que tenga la misma respuesta en diferentes tipos de sistemas.

Otros: Ademas de todos estos subsistemas existen diferentes extensiones que nos facilitarán el trabajo con SDL como SDL_image, SDL_ttf... Además de añadir funcionalidad, como SDL_net para el manejo de redes o SDL_mixer que nos proporciona que el subsistema de audio sea realmente manejable.

En este curso nos interesa el domino de los subsistemas de video y otros opcionales como el subsistema SDL_image que si bien no son obligatorios, facilitan la programación y mejoran considerablemente el diseño gráfico de nuestro programa.

Programando en SDL:

La mejor forma de empezar a comprender la potencia de este sistema es programando, veamos un ejemplo inicial y cada sección de código que debería ir como mínimo para levantar un programa con entorno gráfico, describamos parte a parte. (asumiendo que el sistema Linux ya tiene SDL instalado)

[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12][pic 13][pic 14]

Primeros pasos: Descripción de instrucciones de SDL

A continuación se describen algunas instrucciones básicas para inicializar el servicio de SDL, así como su configuración inicial.

SDL_Init(Uint 32 flags)

Inicializa la librería SDL y sus subsistemas, esta tiene que ser la primera función ejecutada antes de llamar a otras instrucciones de SDL.

SDL_SetVideoMode( ancho,largo, colores, SDL_HWSURFACE )

Configura los parámetros del modo video como el ancho y largo de la ventana, el parámetro SDL_HWSURFACE indica que queremos que la ventana se cree en la memoria de video

SDL_WM_SetCaption(const char *title, const char *icon);

Configura el texto de la barra de título y el nombre del icono a usar.

SDL_Event event;

Cerrar la ventana, un clic de mouse o una tecla presionada, en SDL todos son eventos y el control de estos se hace mediante esta variable.

SDL_WaitEvent (&event)

Espera indefinidamente a que suceda un evento, recordemos que un evento puede ser un click o una tecla presionada.

SDL_Quit()

Termina todos los procesos de SDL y sus sub sistemas.

Ahora pongamos en práctica todo el código antes descrito:

Ejemplo 1

Mi primer programa con entorno gráfico (encontraremos este ejemplo en la carpeta de la práctica, se llama 1.c):

#include

#include

#include

SDL_Event event; /*variable de tipo SDL_event para capturer eventos*/

int main(){

/* Tratamos de inicializar la biblioteca SDL */

if (SDL_Init(SDL_INIT_VIDEO) < 0) {

printf("No se pudo inicializar SDL: %s\n", SDL_GetError());

exit(1);

}

[pic 15][pic 16][pic 17][pic 18][pic 19][pic 20][pic 21][pic 22][pic 23][pic 24][pic 25][pic 26][pic 27][pic 28][pic 29][pic 30][pic 31][pic 32][pic 33][pic 34][pic 35][pic 36][pic 37][pic 38][pic 39][pic 40][pic 41][pic 42]

/* configurar modo gráfico y cambiar el t ítulo de la ventana */

if( SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE ) == NULL ) {

printf( "Error al entrar a modo grafico: %s\n", SDL_GetError() ); SDL_Quit();

return -1;

}

/*mensaje en la barra*/

SDL_WM_SetCaption( "Hola mundo!", "Hola Mundo!" );

/*dando funcionalidad al boton de cerrar esperamos hasta que ocurra un evento*/

while (SDL_WaitEvent (&event)){

switch (event.type)

{

case SDL_QUIT: SDL_Quit();

break;

default:


break;

}

}

return 0;

}

Para ejecutar se usa la siguiente instrucción:

...

Descargar como (para miembros actualizados) txt (13 Kb) pdf (250 Kb) docx (966 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com