Tutorial Sdl

Click here to load reader

  • date post

    27-Jun-2015
  • Category

    Documents

  • view

    241
  • download

    7

Embed Size (px)

Transcript of Tutorial Sdl

Videojuegos, C/C++ y SDLRubn Daro Orozco Zapatadrincast@hotmail.com 2008

Esta obra est bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Colombia de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/co/ o envie una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Creative Commons License DeedReconocimiento-No comercial-Compartir bajo la misma licencia 2.5 ColombiaUsted es libre de: copiar, distribuir y comunicar pblicamente la obra hacer obras derivadas

Bajo las condiciones siguientes: Reconocimiento. Debe reconocer los crditos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra). No comercial. No puede utilizar esta obra para fines comerciales. Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, slo puede distribuir la obra generada bajo una licencia intica a sta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor Nada en esta licencia menoscaba o restringe los derechos morales del autor.

AdvertenciaEste resumen no es una licencia. Es simplemente una referencia prctica para entender el Texto Legal (la licencia completa) es un redactado inteligible por cualquiera de algunos de los trminos clave de la licencia. Se trata de una interficie amigable del Texto Legal que hay debajo. Este resumen por si mismo no tiene valor legal, y su contenido no aparece en la autntica licencia. Creative Commons no es un bufete de abogados y no ofrece servicios legales. La distribucin, la muestra, o el enlace de este Resumen no crea ningun vnculo abogado-cliente. Los derechos derivados de usos legtimos u otras limitaciones reconocidas por ley no se ven afectados por lo anterior. Esto es un resumen fcilmente legible del texto legal (la licencia completa).

A todos los desarrolladores de videojuegos, desde el pequeo desarrollador, a las famosas empresas, Y a todos los jugadores de videojuegos del mundo Gracias por darme una diversin, que disipa odio que hay en el mundo

Agradecimientos

A Martin Richards, KenThompson, Dennis Ritchie por que gracias a ellos naci el lenguaje de programacin C, a Bjarne Stroustrup por desarrollar C++, a los desarrolladores y colaboradores de la librera SDL por su magnifico trabajo, sin todos ellos hoy no tanta diversin. A mis amigos que siempre dan alegra a la vida y a mi familia por aguantarme tanto y hacerme la vida agradable y ms fcil de soportar.

Introduccin ------------------------------------------------------------------------------------------Captulo 1 Algo de historia ----------------------------------------------------------------------1.1 Historia de los videojuegos ----------------------------------------------------1.2 Sobre SDL --------------------------------------------- ----------------------1.3 Otras Libreras -------------------------------------------------------------------Captulo 2 Un Videojuego --------------------------------------------------------------------2.1 Qu necesito para mi videojuego? ------------------------------------------2.2 El corazn del videojuego ------------------------------------------------------Captulo 3 Comenzando con SDL -----------------------------------------------------------3.1 Manos a la obra --------------------------------------------------------------------Captulo 4 Imgenes y Eventos ---------------------------------------------------------------4.1 Eventos -------------------------------------------------------------------4.2 Tcnicas de Video ------------------------------------------------------------------Captulo 5 Creando el diminuto Motor ------------------------------------------------------Captulo 6 La Herencia de un Actor -----------------------------------------------------Apndice A Instalacin y Configuracin de SDL --------------------------------------------A.1 Agregar SDL a Dev-C++ ----------------------------------------------------A.2 Agregar SDL a Visual C++ -----------------------------------------------------Apndice B Valore de SDLKey y mod -----------------------------------------------------Apndice C Conceptos de grficos 2D ----------------------------------------------------Apndice D Algunas Funciones de SDL -----------------------------------------------------Apndice E Recursos ---------------------------------------------------------------Bibliografa -------------------------------------------------------------------------------------------

1 2 2 2 3 5 5 6 8 8 20 20 21 35 47 56 56 58 61 62 64 65 66

Introduccin

1

El presente texto, es una gua para los que estn interesados en el mundo de la programacin y ms en la programacin de videojuegos, con esto no quiero decir que sea un libro extenso sobre la programacin de videojuegos, ni que trate todos los temas que hay sobre ellos y de cmo desarrollar un excelente videojuego, ni las mejores tcnicas de desarrollo para realizar un videojuego. Lo que pretendo con este texto es presentarles unas bases para que se encaminen en este maravilloso mundo lleno de imaginacin y creatividad, para esto parto de dos ejes fundamentales para que puedan seguir este texto, estos ejes son, la programacin en lenguaje C/C++ y el manejo de una librera que nos facilitara la programacin grfica y muchas cosas ms que tengan que ver con los videojuegos, esa es la librera multiplataforma SDL (Simple Directmedia Layer). Supondr que el interesado o sea tu ya posees conocimientos bsicos de programacin estructurada y orientada a objetos, as que no me centrare mucho en detalles extensos sobre la programacin, adems tambin supondr que sabes que es un videojuego, algo de su historia, etc. as que no entrare en muchos detalles sobre esto tampoco, lo primordial de este texto es encaminarte un poco sobre la programacin de un videojuego utilizando una librera como SDL para facilitar un poco las cosas, valga aclarar que este es un corto camino de los muchos y ms extensos que hay en el mundo del desarrollo de video juegos, pero por algo se comienza. Espero que este texto le agrade y les sea de utilidad, hay de antemano pido disculpas si no doy a entender todo, parte o algo de lo que se encuentra en este texto, pero si tienen alguna duda, comentario, sugerencia o critica hganmela saber, escribiendo a drincast@hotmail.com, pues me interesa mucho su opinin y aporte ya que la realimentacin es la que nos ayuda a identificar los problemas.

Videojuegos, C/C++ y SDL

Algo de Historia

Captulo 1

2

Algo de historia e informacin tcnicaLos secretos de nuestras pocas estn codificados en nuestros juegos No me acuerdo del autor, disculpas.

1.1 Historia de los videojuegosDe donde nacen los videojuegos?, pues como muchas cosas buenas que hay en este mundo, que nacen de algo tenebroso y oscuro, los videojuegos nacen a partir de la guerra fra por hay en los cincuenta, Willian o Willy Nighinbotthan en 1958, creo la primera forma de entretenimiento interactivo en un aparato electrnico, eran solo dos lneas rudimentarias y una pelota, esto era una especie de tenis, despus apareci Steve Russell, creo un jueguito de naves en un maravilloso PDP llamado spacewar y gracias a este personaje es que tenemos el poder en nuestra manos el maravilloso y todo poderos, el control de mando, si, esa cajita con botones y cursor que utilizas en tu XBOX, PlayStatio, etc. y luego viene Ralph Baer y crea la primera consola casera la magnavox odyssey, despus Nolan Bushnell funda en 1972 la empresa Atari, este personaje fue el que creo el negocio del videojuego y por ello, los videojuegos son tan caros ja ja ja (una pequea broma?). Bueno creo que hasta aqu lo de la historia, creo que hay que destacar algunos juegos que aparecieron como famoso PONG (Al Alcorn), Space invader todo un clsico, Pac-MAN el primer hroe, el entretenido e intelectual Tetris.

1.2 Sobre SDLSDL (Simple DirectMedia Layer), es una API creada por Sam Lantinga de Locky Games para el desarrollo de videojuegos, demos, emuladores, reproductores y ms, algo de lo que te permite hacer SDL es establecer un modo de video y utilizar la memoria de video o de sistema para trabajar con grficos, que en trminos de SDL se conocen como superficies (Surfaces), te permite el manejo o deteccin de eventos para saber si se movi el mouse o se presiono alguna tecla del teclado, etc., te permite trabajar o manipular sonido en tus programas, manejo de la unidad de CD-ROM, manejo de hilos, temporizadores, adems de ofrecernos lo anterior esta API es multiplataforma ya que se puede hacer desarrollos para SO (sistemas operativo) Windows, Linux, MacOS, entre otros y adems de esto tambin la podemos utilizar en muchos lenguajes de programacin como Perl, C, C++, PHP, entre otros y otro punto a favor ms es que esta bajo licencia Videojuegos, C/C++ y SDL

Algo de Historia

Captulo 1

3

LPGL (licencia publica general menor) o sea que tu aplicacin creada con SDL no necesita ser de cdigo abierto, pero hombre todo es conocimiento y como tal deberamos aportar con algo. Esta API esta compuesta pos subsistemas separados, en general son cinco: sistema de video, sistema de sonido, de CD-ROM, Joystick y temporizadores, cada una puede ser inicializada independiente de las dems, SDL permite o fomenta la utilizacin de libreras que adicionan funcionalidad o mejor nos reducen el trabajo, entre estas libreras tenemos SDL_image, para cargar imgenes de diferentes formatos (png, jpg, pcx, etc.), SDL_mixer, que nos permite la manipulacin de audio de diferentes formatos, SDL_ttf, que nos permite el manejo de tipografa true type texto. Para co