Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control...

17
Desarrollo de juegos de Desarrollo de juegos de video video Aprendiendo a programar en C# de manera Aprendiendo a programar en C# de manera divertida divertida Sesión 6: Control del jugador de lo Sesión 6: Control del jugador de lo sprites sprites edgar.sanchez@logicstudio. edgar.sanchez@logicstudio. net net

Transcript of Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control...

Page 1: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Desarrollo de juegos de Desarrollo de juegos de videovideoAprendiendo a programar en C# de manera Aprendiendo a programar en C# de manera divertidadivertida

Sesión 6: Control del jugador de los spritesSesión 6: Control del jugador de los sprites

[email protected]@logicstudio.net

Page 2: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Objetivos de esta serieObjetivos de esta serie

Dar a los participantes una introducción a Dar a los participantes una introducción a algunos de los conceptos fundamentales del algunos de los conceptos fundamentales del desarrollo de juegosdesarrollo de juegos

Introducir la programación con Visual C# 2005 Introducir la programación con Visual C# 2005 Express Edition, el nuevo IDE (ambiente de Express Edition, el nuevo IDE (ambiente de desarrollo integrado) de Microsoft para desarrollo integrado) de Microsoft para programadores principiantesprogramadores principiantes

Page 3: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Visión de esta sesiónVisión de esta sesión

Sesión 6/8 – Control del jugador de los Sesión 6/8 – Control del jugador de los sprites y creación dinámica de spritessprites y creación dinámica de sprites

Fundamentos de sprites dinámicosFundamentos de sprites dinámicosCómo crear un sprite dinámicamenteCómo crear un sprite dinámicamenteCuándo se usan los sprites dinámicosCuándo se usan los sprites dinámicos

EntradaEntradaTecladoTecladoPresionadoPresionadoDisparadoDisparado

Implementación en el juegoImplementación en el juegoCreación de un prototipoCreación de un prototipoManejo de entradas de tecladoManejo de entradas de teclado

Page 4: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Creación dinámica de spritesCreación dinámica de sprites

Crear sprites dinámicamente es crearlos al Crear sprites dinámicamente es crearlos al momento de ejecución (durante el juego)momento de ejecución (durante el juego)

Cómo crear un sprite dinámicamente:Cómo crear un sprite dinámicamente:Para crear un sprite dinámicamente, necesitamos Para crear un sprite dinámicamente, necesitamos un prototipo de spriteun prototipo de sprite

El prototipo será la base del que se crearán copias El prototipo será la base del que se crearán copias del spritedel sprite

El prototipo de sprite no es manipulado en el bucle El prototipo de sprite no es manipulado en el bucle del juego y no es desplegadodel juego y no es desplegado

Creamos el prototipo escribiendo este código en el Creamos el prototipo escribiendo este código en el archivo ‘StarTrooperGame.cs’:archivo ‘StarTrooperGame.cs’:

Page 5: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Creación dinámica de spritesCreación dinámica de sprites

Agregar este código en Agregar este código en ‘StarTrooperGame.cs’ en el método ‘StarTrooperGame.cs’ en el método ‘InitializeResources’ (muy similar al ‘InitializeResources’ (muy similar al código para Trooper y Condor)código para Trooper y Condor)

Page 6: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Creación dinámica de spritesCreación dinámica de sprites

A partir del prototipo, hay que crear A partir del prototipo, hay que crear copiascopias

Definir las propiedades de la copia tales Definir las propiedades de la copia tales como la posición, velocidad, etc.como la posición, velocidad, etc.

Para crear una copia, clonamos el Para crear una copia, clonamos el prototipo:prototipo:

Este código se ejecutará cada vez que Este código se ejecutará cada vez que el jugador presione la barra espaciadora el jugador presione la barra espaciadora para disparar una bala.para disparar una bala.

Page 7: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Creación dinámica de spritesCreación dinámica de sprites

¿Cuándo usar sprites dinámicos?¿Cuándo usar sprites dinámicos?Cuando necesitamos que aparezcan nuevos Cuando necesitamos que aparezcan nuevos sprites como parte de la ejecución del sprites como parte de la ejecución del juegojuego

La aparición de cóndores o balas es un La aparición de cóndores o balas es un ejemploejemplo

Page 8: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

EntradaEntrada

TecladoTecladoUn dispositivo que devuelve códigos de Un dispositivo que devuelve códigos de caracteres cuando se presiona una teclacaracteres cuando se presiona una tecla

ASCII (American Standard Code for ASCII (American Standard Code for Information Interchange)Information Interchange)

Puesto que el computador solo puede Puesto que el computador solo puede entender números binarios, cada carácter entender números binarios, cada carácter es representado por un númeroes representado por un número

Por ejemplo: La A mayúscula es representada Por ejemplo: La A mayúscula es representada por el número 65 (base 10) que es el 01000001 por el número 65 (base 10) que es el 01000001 en binarioen binario

Page 9: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

EntradaEntrada

PresionadoPresionadoEs el estado de una tecla cuando está Es el estado de una tecla cuando está aplastadaaplastada

La acción asignada a la entrada del teclado La acción asignada a la entrada del teclado será ejecutada mientras la tecla está será ejecutada mientras la tecla está presionadapresionada

Para obtener el estado de una tecla hay Para obtener el estado de una tecla hay que llamar a la función IsPressed()que llamar a la función IsPressed()

Esta función devuelve un valor booleanoEsta función devuelve un valor booleanoPor ejemplo: este código revisa si la ‘flecha Por ejemplo: este código revisa si la ‘flecha arriba’ ha sido presionada o noarriba’ ha sido presionada o no

Page 10: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

EntradaEntrada

Disparado (Triggered)Disparado (Triggered)Este es el estado de una tecla cuando Este es el estado de una tecla cuando cambia de no presionado a presionadocambia de no presionado a presionado

Para averiguar si una tecla se ha disparado Para averiguar si una tecla se ha disparado (cambiado de estado), se llama a la función (cambiado de estado), se llama a la función IsTriggered()IsTriggered()

Esta función devuelve un valor booleanoEsta función devuelve un valor booleanoEjemplo: el código que se muestra revisa si la Ejemplo: el código que se muestra revisa si la barra espaciadora ha cambiado de estadobarra espaciadora ha cambiado de estado

Page 11: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Implementación en el juegoImplementación en el juego

Durante el juego, las teclas de flechas Durante el juego, las teclas de flechas se usan para mover al Trooperse usan para mover al Trooper

Presionar la flecha arriba mueve al Trooper Presionar la flecha arriba mueve al Trooper hacia arribahacia arribaPresionar la flecha abajo mueve el Trooper Presionar la flecha abajo mueve el Trooper hacia abajohacia abajoPresionar las flechas izquierda o derecha Presionar las flechas izquierda o derecha mueve al Trooper a la izquierda o la mueve al Trooper a la izquierda o la derecha respectivamentederecha respectivamenteCuando se dispara la barra espaciadora, el Cuando se dispara la barra espaciadora, el Trooper disparará una bala (que será Trooper disparará una bala (que será creada dinámicamentecreada dinámicamente

Page 12: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Implementación en el juegoImplementación en el juego

Page 13: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Resumen de la sesiónResumen de la sesiónControl del jugador de los Control del jugador de los spritesspritesFundamentos de creación dinámica de Fundamentos de creación dinámica de

spritesspritesCómo crear un sprite dinámicamenteCómo crear un sprite dinámicamenteCuando se usan sprites dinámicosCuando se usan sprites dinámicos

EntradaEntradaTecladoTecladoPresionadoPresionadoDisparadoDisparado

Implementación en el juegoImplementación en el juegoCreación de un prototipoCreación de un prototipoManejo de las entradas de tecladoManejo de las entradas de teclado

Page 14: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

¿Deseas aprender más?¿Deseas aprender más?

DigiPen Institute of Technology ofrece una DigiPen Institute of Technology ofrece una variedad de vías para explorar una carrera en variedad de vías para explorar una carrera en el desarrollo de juegos de video:el desarrollo de juegos de video:

La serie original de webcasts sobre desarrollo de La serie original de webcasts sobre desarrollo de juegos - Realizada en mayo del 2005. Se puede ver juegos - Realizada en mayo del 2005. Se puede ver en en http://www.microsoft.com/events/series/msdnvideohttp://www.microsoft.com/events/series/msdnvideodev.mspxdev.mspx El código de esta sesión está en El código de esta sesión está en http://www.digipen.edu/webcast/http://www.digipen.edu/webcast/ Talleres de verano – Series de clases introductorias Talleres de verano – Series de clases introductorias en programación de juegos, producción de en programación de juegos, producción de animaciones 3D y robótica. Más información en animaciones 3D y robótica. Más información en http://workshops.digipen.eduhttp://workshops.digipen.edu ProjectFUN Distance Learning – DigiPen tiene ProjectFUN Distance Learning – DigiPen tiene cursos en línea impartidos por sus instructores. cursos en línea impartidos por sus instructores. Más información en http://projectfun.digipen.eduMás información en http://projectfun.digipen.edu

Page 15: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Preguntas y respuestasPreguntas y respuestas

Proponer preguntas usando el botón “Ask a Proponer preguntas usando el botón “Ask a Question”Question”No te olvides de llenar la encuestaNo te olvides de llenar la encuestaPara webcasts futuros y pasados (en inglés) Para webcasts futuros y pasados (en inglés) http://www.microsoft.com/webcastshttp://www.microsoft.com/webcastsPara webcasts futuros y pasados (en Para webcasts futuros y pasados (en castellano) castellano) http://www.microsoft.com/spanish/msdn/latahttp://www.microsoft.com/spanish/msdn/latam/videom/video Esta serie de webcasts está grabada en Esta serie de webcasts está grabada en http://www.microsoft.com/http://www.microsoft.com/spanish/msdn/latam/video/academic.aspspanish/msdn/latam/video/academic.asp Este webcast fue presentado usando Este webcast fue presentado usando Microsoft Office LiveMeeting. Se puede Microsoft Office LiveMeeting. Se puede obtener una prueba de 14 días gratuita en obtener una prueba de 14 días gratuita en http://www.microsoft.com/presentlivehttp://www.microsoft.com/presentlive

Page 16: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

¿Dónde se puede obtener ¿Dónde se puede obtener MSDN?MSDN?

Llenar la encuesta al final del webcast y Llenar la encuesta al final del webcast y pedir a un representante de Microsoft pedir a un representante de Microsoft que le contacteque le contacte

Convertirse en un suscriptor de los Convertirse en un suscriptor de los CDs/DVDs de MSDN en CDs/DVDs de MSDN en http://msdn.microsoft.com/subscriptionshttp://msdn.microsoft.com/subscriptions

Page 17: Desarrollo de juegos de video Aprendiendo a programar en C# de manera divertida Sesión 6: Control del jugador de los sprites edgar.sanchez@logicstudio.net.

Música del juego y Música del juego y efectos de sonidoefectos de sonido

Nos vemos la próxima semana Nos vemos la próxima semana para…para…