Vous êtes sur la page 1sur 23

Introduccin a la programacin de videojuegos con SDL

Disertante: Federico M. Peretti federicoperetti@gmail.com

Por que programar videojuegos?

Para aprender a programar mejor Hobby Programar videojuegos es Divertido! tros

SDL?

!D" es conjunto de bibliotecas desarrolladas en # $ue proporcionan funciones b%sicas para reali&ar operaciones de dibujado 'D( gesti)n de efectos de sonido y m*sica( y carga y gesti)n de im%genes. !D" es una abreviatura en ingl+s de !imple DirectMedia "ayer.

Por que SDL?

,s libre -".P"/ ,s multiplataforma Facil de usar 0rappers a otros lenguajes -#11( 2ava( Pyt3on( 4da( 5uby( Perl( ,iffel( etc../

Conceptos Basicos para el desarrollo de juegos en 2D

!prites: 6n sprite es cual$uier objeto $ue aparece en nuestro videojuego. 7ormalmente tiene asociado algunos atributos( siendo los m%s b%sicos una imagen y una posici)n.

Conceptos Bsicos para el desarrollo de juegos en 2D

4nimaci)n de !prites: Podemos pensar en una secuencia de im%genes $ue son dibujadas r%pidamente( $ue enga8an al ojo 3umano dando el efecto de un movimiento fluido. ,s el mismo m+todo $ue se utili&a para los dibujos animados.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransparencias : #olor ;eys: #uando mostramos una imagen en pantalla( esta siempre se ver% como un cuadrado o rect%ngulo( pero sabemos $ue dentro tiene la representaci)n de un objeto( personaje( enemigo( <tem( etc. 4l dibujar esta imagen $ueremos ver solo la forma $ue representa( para esto debemos elegir alg*n color transparente( pintar con ese color las &onas $ue no $ueremos $ue apare&can y luego dibujar la imagen ignorando dic3o color.

7ormalmente se utili&a el color magenta -'==( >( '==/( como color de transparencia( ya $ue es poco probable $ue se encuentre en una imagen.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransparencias ? M%scara: ,@iste otro m+todo para ignorar un color en una imagen( el uso de una m%scara $ue se antepone al bitmap original( es decir( debemos tener otro bitmap $ue indica cuales son los pi@eles transparentes. ,l color $ue indica la transparencia es el negro( y el color blanco la figura $ue $ueremos mostrar. Por lo tanto( al dibujar la imagen( recorreremos cada pi@el de la m%scara( y si este color es blanco( mostraremos el pi@el del bitmap original $ue se encuentra en esa posici)n.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransformaciones ? 9ranslation: ,sta es la transformaci)n m%s simple( corresponde a cambiar la posici)n del sprite para luego dibujarla en otro lugar de la pantalla( dando el efecto de movimiento( sin duda lo m%s usado en cual$uier videojuego. A se resume en asignar una nueva posici)n a las coordenadas -@( y/ del sprite.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransformaciones ? 5otation: tra transformaci)n t<pica( $ue consiste en girar el sprite un n*mero determinado de grados. !e usa para mostrar objetos vistos desde otro %ngulo( por ejemplo en el videojuego Micro Mac3ines( cuando doblamos cambiamos el %ngulo del auto y luego este cambio lo vemos reflejado en la pantalla gracias a la rotaci)n.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransformaciones : !caling: tra transformaci)n muy usada en algunos videojuegos( consiste en escalar una imagen( es decir( cambiar su tama8o -normalmente de forma proporcional/( ya sea un aumento o una disminuci)n. !e puede usar para dar un efecto de profundidad( es decir( si el objeto est% m%s alejado de nosotros lo dibujaremos m%s pe$ue8o( en cambio si est% muy cerca de nosotros( lo dibujaremos de un tama8o m%s grande.

Conceptos Bsicos para el desarrollo de juegos en 2D

9ransformaciones ? Flipping: ,l flipping es un tipo de transformaci)n especial para reali&ar algunos efectos. B%sicamente e@isten dos tipos( Certical Flip $ue corresponde al efecto $ue se produce cuando se refleja un objeto en el agua y Hori&ontal Flip $ue corresponde al reflejo de un objeto en un espejo.

Conceptos Bsicos para el desarrollo de juegos en 2D

4lp3a blending: 4lp3a blending o me&clado alp3a es una t+cnica para crear transparencias en una imagen con respecto al fondo. Para lograr esto se agrega un cuarto canal a un color( llamado canal alp3a. De 5.B a 5.B4

Conceptos Bsicos para el desarrollo de juegos en 2D

!creen Buffer: ,l screen buffer es simplemente un %rea de la memoria de video( donde podemos dibujar algo $ue se mostrar% en la pantalla. !i $ueremos mostrar un pi@el( debemos tener un puntero a la direcci)n de memoria de video y calcular la posici)n -offset( despla&amiento/ donde $ueremos dibujar el pi@el y luego en esa posici)n copiar el byte o los bytes $ue representan el color.

Conceptos Bsicos para el desarrollo de juegos en 2D

!urface: B%sicamente es una &ona de memoria $ue puede estar en la 54M o Cideo 54M y es usada para almacenar un bitmap.

Conceptos Bsicos para el desarrollo de juegos en 2D

,l blitting es una operaci)n para transferir un blo$ue de bytes -surface/ de un sector de la memoria a otra. Ciene del termino Blit -BlocD Emage 9ransfer( 9ransferencia de Emagen por Blo$ue/ y es una forma de renderi&ar -dibujar/ sprites con o sin transparencias sobre un fondo. ,sta t+cnica puede ser acelerada por 3ardFare( lo cual ayuda a incrementar bastante el rendimiento( de 3ec3o esta operaci)n es una de las m%s cr<ticas en cual$uier videojuego y es la $ue m%s usaremos.

Conceptos Bsicos para el desarrollo de juegos en 2D

!incroni&aci)n en los videojuegos: "o ideal en cual$uier videojuego( es $ue todos los objetos se muevan a la misma velocidad( independiente de la velocidad del computador donde se ejecute. !i no nos preocupamos por esto( y ejecutamos nuestro videojuego en un computador antiguo( por ejemplo( en un Pentium de G>> M3&( probablemente el videojuego se vea muy lento( en cambio si lo ejecutamos en un computador con un procesador de *ltima generaci)n( un Pentium EC a '.H .3&( se ver% tan r%pido $ue ser% imposible jugar. Para solucionar este problema( disponemos de dos m+todos.

Conceptos Bsicos para el desarrollo de juegos en 2D

!incroni&aci)n por Framerate: ,l m+todo es bastante sencillo( y lo primero $ue debemos 3acer cuando comien&a el ciclo del videojuego( es obtener el tiempo transcurrido 3asta ese momento( $ue normalmente se mide en milisegundos. "uego procesamos lo relacionado al videojuego( ya sea entrada( E4( l)gica del juego( detecci)n de colisiones( dibujo de gr%ficos( etc. y antes de terminar el ciclo( creamos otro loop en el cual vamos obteniendo el tiempo transcurrido 3asta ese momento( calculamos la diferencia de tiempo y verificamos si es menor a los FP! $ue buscamos. De esta forma cada ve& $ue ejecutemos el programa en una m%$uina diferente( el programa esperar% el tiempo adecuado para obtener los FP!.

Componentes adicionales

!D"IMi@er !D"IEmage !D"I7et !D"I59F !D"I99F

!"#

59FM -5ead 93e Friendly Manual/ 59FM 4gain .oogle is your friend! 3ttp:JJFFF.elistas.netJlistaJsdl ? lista de correo sobre !D" en ,spa8ol 3ttp:JJFFF.loosersjuegos.com.ar federicoperetti@gmail.com

Licencia

6sted es libre de copiar( distribuir y 3acer obras derivadas de este te@to bajo los terminos de la .76 J Free Documentation "icense

Vous aimerez peut-être aussi