desarrollo de juegos de video aprendiendo a programar en c# de manera divertida sesión 6: control...
TRANSCRIPT
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
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
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
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’:
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)
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.
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
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
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
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
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
Implementación en el juegoImplementación en el juego
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
¿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
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
¿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
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…