Desarrollo De Videojuegos Con Xna
-
Upload
cesar-reneses -
Category
Technology
-
view
3.659 -
download
10
description
Transcript of Desarrollo De Videojuegos Con Xna
Desarrollo de videojuegoscon XNA
César Reneses CárcamoMicrosoft Student PartnerCoordinador Albacete DotNetClub
Que vamos a ver
• Introducción
• Estructura de un juego
• Construcción de juegos con Visual Studio
• Manejo de periféricos
• Content Pipeline
• Desarrollo en 2D
• XNA en Windows Phone 7
Introducción
• Es un framework
• Es una capa de abstracción sobre DirectX
• No es un lenguaje de programación
• No solo se puede dedicar a desarrollar videojuegos
Qué es XNA
Qué no es XNA
Introducción¿ Donde podemos utilizar XNA ?
Introducción
Introducción
IntroducciónQué se pretende con XNA
• Simplificar el manejo del hardware (video, sonido, controles)
• Facilidad de aprendizaje
• Aumentar la modularidad de los desarrollos
• Facilitar el desarrollo a través de diferentes APIs (matemáticas, geometría, audio, almacenamiento, etc)
Introducción
Introducción2005 2006 2007 2008 2009
Anuncio de la salida
de XNAPrimera
preview
de XNA en el
GDC
En Abril se lanza XNA
Game Studio Express
1.0 Refresh
En Diciembre
aparece la versión
2.0 de XNA
En Octubre aparece
la versión 3.0 de XNAEn Marzo se anuncia
la salida de la
versión 3.1 de XNA
en el GDC de San
Francisco
Puede utilizarse con
cualquier versión de
Visual Studio
Inclusión de una API
de red usando XBOX
Live
Uso en Visual Studio
2008
Ejecución de juegos
en ZUNE
Compatibilidad con
C# 3.0 y LINQ
API que permite la
reproducción de
video y mejora de la
API de audio
Soporte para avatars
de XBOX Live
Introducción
2010
Integración con Visual Studio 2010
Soporte para una nueva plataforma: Windows Phone 7
Uso del micrófono en nuestros juegos
Nuevos Basic Effects
Mejoras en la API de gestión de gráficos
Soporte para gráficos «normales» y en alta definición
Introducción
Platform
Core
Framework
Extended
Framework
Games
XACT XINPUT XContentDirect3D
Graphics Audio Input Math Storage
Application Model Content Pipeline
Starter Kits Code Content Component
Legend XNA Provides You Provide Community
Networking Gamer
Services
Introducción
Platform
Core
Framework
Extended
Framework
Games
XACT XINPUT XContentDirect3D
Graphics Audio Input Math Storage
Application Model Content Pipeline
Starter Kits Code Content Component
Legend XNA Provides You Provide Community
Networking Gamer
Services
La clase Game1•Initialize()
•LoadGraphicsContent()
•UnloadGraphicsContent()
•Update()
•Draw()
Introducción
Platform
Core
Framework
Extended
Framework
Games
XACT XINPUT XContentDirect3D
Graphics Audio Input Math Storage
Application Model Content Pipeline
Starter Kits Code Content Component
Legend XNA Provides You Provide Community
Networking Gamer
Services
Dos tipos de componentes
GameComponents
DrawableGameComponents
Introducción
• Las herramientas necesarias
http://creators.xna.com
Estructura de un juego
• Ló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 red
Qué se necesita para construir un juego
Estructura de un juego
Inicialización
Carga de recursos
Comienzo del juego
Comprobación de la lógica
Pintado de la escena
Descarga de recursos
Manejo de periféricos
Manejo de periféricos
¿Está presionada?¿Están las dos presionadas?
¿Qué tecla es esta?
¿Ha sido pulsada?
Manejo de periféricos
• Keys = enumeración
• KeyboardState = estructura
• IsKeyDown: nos dice que tecla concreta está presionada
• IskeyUp: nos dice que tecla concreta deja de presionarse
• GetPressedKeys: nos dice que teclas están pulsadas
• Keyboardclass
• GetState: obtenemos todo el estado del teclado
Manejo de periféricos• ButtonState = enumeración
• MouseStatestructure
• LeftMouseButton
• MiddleMouseButton
• RightMouseButton
• ScrollWheelValue: obtenemos el desplazamiento
• XButton1
• XButton2
• Mouseclass
• GetState
• SetPosition
Manejo de periféricos
• GamePad
• SetVibration
• GetState(jugador)
• IsConnected
• ButtonState
• GamePadStatestructure
• Buttons
• DPad: (Left, Up, Right, Down)
• ThumbSticks: (Left, Right)
Content Pipeline
Centraliza toda clase de recursos:
• Imágenes
• Audio
• Video
• Modelos 3D
• Fuentes
• Etc…
Prepara los recursos para acceder más rápidamente y además es extensible
Content Pipeline
Archivo ContentImporter Tipo de dato
ContentProcessor
Tipo de datoContentTypeWriterArchivo
ContentPipeline
Content Pipeline
Tipo de dato
Juego
ContentTypeReaderArchivo
ContentPipeline
Desarrollo en 2D
• Manos a la obra• En la clase Game1
• GraphicsDeviceManager
• SpriteBatch
Desarrollo en 2D
• Dibujar un Sprite
• Objeto Texture2D
• Objeto Rectangle
Desarrollo en 2D
• Las colisiones
• El método Intersects nos facilita la tarea
Desarrollo en 2D
• Música y efectos sonoros
• Dos objetos a tener encuenta:• SoundEffect
• MediaLibrary
SoundEffect
Métodos útiles Play();
MediaLibrary
Métodos útiles
Play();
Stop();
IsRepeating
Desarrollo en 2DSonidos en XNA con XACT
Herramienta XACT instalada con XNA GS
www.soundsnap.com (Recursos de sonido)
Desarrollo en 2D
• Los controles
• KeyboardState
• GamePadState
private void posicionTeclado()
{
estadoTeclado = Keyboard.GetState();
Keys[] teclaspulsada = estadoTeclado.GetPressedKeys();
foreach (Keys ekey in teclaspulsada)
{
if (ekey == Keys.Left)
{
posicion_helip.X -= 8;
}
…….
….
Desarrollo en 2D
• Animando los Sprites• Si está estático está muerto
Desarrollo en 2D• “Inteligencia” del juego
• Demasiado fácil MAL
• Demasiado dificil MAL
Windows Phone 7
Windows Phone 7
Silverlight 3 (plus)
XNA
Visual Studio 2010
Visual Phone Developer Express
Single, integrated download
Windows Phone 7
Nueva versión de XNA
Soporte 3D en el móvil
APIs similares a las usadas en Windows and Xbox 360
Enlaceshttp://xna-para-torpes.blogspot.com
http://labloguera.net
http://labloguera.net/blogs/csharp/archive/tags/xna
http://creators.xna.com/es-ES/
http://www.codeplex.com/XNACommunity
http://msdn.microsoft.com/es-es/xna
http://msdn.microsoft.com/en-us/library/aa468128%28v=MSDN.10%29.aspx
http://blogs.msdn.com/shawnhar
© 2009 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
http://www.xna.com
© 2009 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Email: [email protected]
Blog: http://labloguera.net/blogs/csharp