Desarrollo de videojuegoscon XNACésar RenesesCárcamoMicrosoft Student PartnerCoordinador Albacete DotNetClub
Quevamos a verIntroducciónEstructura de un juegoConstrucción de juegos con Visual StudioManejo de periféricosContent PipelineDesarrollo en 2DXNA en Windows Phone 7
IntroducciónQué es XNAEs un frameworkEsunacapa de abstracciónsobre DirectXQué no es XNANo es un lenguaje de programaciónNo solo se puedededicar a desarrollarvideojuegos
Introducción¿ Donde podemos utilizar XNA ?
Introducción
Introducción
IntroducciónQué se pretende con XNASimplificar el manejo del hardware (video, sonido, controles)Facilidad de aprendizajeAumentar la modularidad de los desarrollosFacilitar el desarrollo a través de diferentes APIs (matemáticas, geometría, audio, almacenamiento, etc)
Introducción
Introducción20082006200520072009En Octubre aparece la versión 3.0 de XNAAnuncio de la salida de XNAPrimera previewde XNA en el GDCEn Abril se lanza XNA Game Studio Express 1.0 RefreshEn Marzo se anuncia la salida de la versión 3.1 de XNA en el GDC de San FranciscoUso en Visual Studio 2008En Diciembre aparece la versión 2.0 de XNAEjecución de juegos en ZUNEAPI que permite la reproducción de video y mejora de la API de audioPuede utilizarse con cualquier versión de Visual StudioCompatibilidad con C# 3.0 y LINQSoporte para avatars de XBOX LiveInclusión de una API de red usando XBOX Live
Introducción2010Integración con Visual Studio 2010Soporte para una nueva plataforma: Windows Phone 7Uso del micrófono en nuestros juegosNuevos Basic EffectsMejoras en la API de gestión de gráficosSoporte para gráficos «normales» y en alta definición
IntroducciónContentCodeComponentXACTXINPUTXContentDirect3DGraphicsAudioInputMathApplication ModelContent PipelineStarter KitsStorageGamesExtendedFrameworkCoreFrameworkGamer ServicesNetworkingPlatformLegendCommunityXNA ProvidesYou Provide
IntroducciónContentCodeComponentXACTXINPUTXContentDirect3DGraphicsAudioInputMathApplication ModelContent PipelineStarter KitsStorageGamesLa clase Game1Initialize()
LoadGraphicsContent()
UnloadGraphicsContent()
Update()
Draw()ExtendedFrameworkCoreFrameworkGamer ServicesNetworkingPlatformLegendCommunityXNA ProvidesYou Provide
IntroducciónContentCodeComponentXACTXINPUTXContentDirect3DGraphicsAudioInputMathApplication ModelContent PipelineStarter KitsStorageGamesDos tipos de componentesExtendedFrameworkGameComponentsDrawableGameComponentsCoreFrameworkGamer ServicesNetworkingPlatformLegendCommunityXNA ProvidesYou Provide
IntroducciónLas herramientas necesariashttp://creators.xna.com
Estructura de un juegoQué se necesita para construir un juegoLógica del juego
Manejo del timer
Datos del juego
Gestión de recursos
Instrucciones del jugador
Cálculos matemáticos
Efectos especiales
Comunicación por redEstructura de un juegoInicializaciónComienzo del juegoDescarga de recursosComprobación de la lógicaCarga de recursosPintado de la escena
Manejo de periféricos
Manejo de periféricos¿Están las dos presionadas?¿Está presionada?¿Qué tecla es esta?¿Ha sido pulsada?
Manejo de periféricosKeys = enumeración
KeyboardState = estructura
IsKeyDown: nos dice queteclaconcretaestápresionada
IskeyUp: nos dice queteclaconcretadeja de presionarse
GetPressedKeys: nos dice queteclasestánpulsadas
Keyboardclass
GetState: obtenemostodo el estado del tecladoManejo de periféricosButtonState = enumeración
MouseStatestructure
LeftMouseButton

Desarrollo De Videojuegos Con Xna