Desarrollo de videojuegoscon XNA<br />César RenesesCárcamo<br />Microsoft Student Partner<br />Coordinador Albacete DotNet...
Quevamos a ver<br />Introducción<br />Estructura de un juego<br />Construcción de juegos con Visual Studio<br />Manejo de ...
Introducción<br />Qué es XNA<br />Es un framework<br />Esunacapa de abstracciónsobre DirectX<br />Qué no es XNA<br />No es...
Introducción<br />¿ Donde podemos utilizar XNA ?<br />
Introducción<br />
Introducción<br />
Introducción<br />Qué se pretende con XNA<br />Simplificar el manejo del hardware (video, sonido, controles)<br />Facilida...
Introducción<br />
Introducción<br />2008<br />2006<br />2005<br />2007<br />2009<br />En Octubre aparece la versión 3.0 de XNA<br />Anuncio ...
Introducción<br />2010<br />Integración con Visual Studio 2010<br />Soporte para una nueva plataforma: Windows Phone 7<br ...
Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Au...
Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Au...
LoadGraphicsContent()
UnloadGraphicsContent()
Update()
Draw()</li></ul>Extended<br />Framework<br />Core<br />Framework<br />Gamer <br />Services<br />Networking<br />Platform<b...
Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Au...
Introducción<br />Las herramientas necesarias<br />http://creators.xna.com<br />
Estructura de un juego<br />Qué se necesita para construir un juego<br /><ul><li>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</li></li></ul><li>Estructura de un juego<br />Inicialización<br />Comienzo del juego<br />Descarga de...
Manejo de periféricos<br />
Manejo de periféricos<br />¿Están las dos presionadas?<br />¿Está presionada?<br />¿Qué tecla es esta?<br />¿Ha sido pulsa...
Manejo de periféricos<br /><ul><li>Keys = 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 teclado</li></li></ul><li>Manejo de periféricos<br /><ul><li>ButtonState = enumeración
MouseStatestructure
LeftMouseButton
Upcoming SlideShare
Loading in...5
×

Desarrollo De Videojuegos Con Xna

3,669

Published on

Taller realizado dentro del master de tecnologías web de la UCLM, en el que se ofrecio una aproximación al mundo del desarrollo del videojuego con XNA

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • xna is just great, look to this funny game:
    <br /><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/ugDlueqYYYk?fs=1&amp;hl=pt_PT&amp;hd=1" width="350" height="288"><param name="movie" value="http://www.youtube.com/v/ugDlueqYYYk?fs=1&amp;hl=pt_PT&amp;hd=1"></param><embed src="http://www.youtube.com/v/ugDlueqYYYk?fs=1&amp;hl=pt_PT&amp;hd=1" width="350" height="288" type="application/x-shockwave-flash"></embed></object>
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
3,669
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
142
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Desarrollo De Videojuegos Con Xna

  1. 1. Desarrollo de videojuegoscon XNA<br />César RenesesCárcamo<br />Microsoft Student Partner<br />Coordinador Albacete DotNetClub<br />
  2. 2. Quevamos a ver<br />Introducción<br />Estructura de un juego<br />Construcción de juegos con Visual Studio<br />Manejo de periféricos<br />Content Pipeline<br />Desarrollo en 2D<br />XNA en Windows Phone 7<br />
  3. 3. Introducción<br />Qué es XNA<br />Es un framework<br />Esunacapa de abstracciónsobre DirectX<br />Qué no es XNA<br />No es un lenguaje de programación<br />No solo se puedededicar a desarrollarvideojuegos<br />
  4. 4. Introducción<br />¿ Donde podemos utilizar XNA ?<br />
  5. 5. Introducción<br />
  6. 6. Introducción<br />
  7. 7. Introducción<br />Qué se pretende con XNA<br />Simplificar el manejo del hardware (video, sonido, controles)<br />Facilidad de aprendizaje<br />Aumentar la modularidad de los desarrollos<br />Facilitar el desarrollo a través de diferentes APIs (matemáticas, geometría, audio, almacenamiento, etc)<br />
  8. 8. Introducción<br />
  9. 9. Introducción<br />2008<br />2006<br />2005<br />2007<br />2009<br />En Octubre aparece la versión 3.0 de XNA<br />Anuncio de la salida de XNA<br />Primera preview<br />de XNA en el GDC<br />En Abril se lanza XNA Game Studio Express 1.0 Refresh<br />En Marzo se anuncia la salida de la versión 3.1 de XNA en el GDC de San Francisco<br />Uso en Visual Studio 2008<br />En Diciembre aparece la versión 2.0 de XNA<br />Ejecución de juegos en ZUNE<br />API que permite la reproducción de video y mejora de la API de audio<br />Puede utilizarse con cualquier versión de Visual Studio<br />Compatibilidad con C# 3.0 y LINQ<br />Soporte para avatars de XBOX Live<br />Inclusión de una API de red usando XBOX Live<br />
  10. 10. Introducción<br />2010<br />Integración con Visual Studio 2010<br />Soporte para una nueva plataforma: Windows Phone 7<br />Uso del micrófono en nuestros juegos<br />Nuevos Basic Effects<br />Mejoras en la API de gestión de gráficos<br />Soporte para gráficos «normales» y en alta definición<br />
  11. 11. Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Audio<br />Input<br />Math<br />Application Model<br />Content Pipeline<br />Starter Kits<br />Storage<br />Games<br />Extended<br />Framework<br />Core<br />Framework<br />Gamer <br />Services<br />Networking<br />Platform<br />Legend<br />Community<br />XNA Provides<br />You Provide<br />
  12. 12. Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Audio<br />Input<br />Math<br />Application Model<br />Content Pipeline<br />Starter Kits<br />Storage<br />Games<br />La clase Game1<br /><ul><li>Initialize()
  13. 13. LoadGraphicsContent()
  14. 14. UnloadGraphicsContent()
  15. 15. Update()
  16. 16. Draw()</li></ul>Extended<br />Framework<br />Core<br />Framework<br />Gamer <br />Services<br />Networking<br />Platform<br />Legend<br />Community<br />XNA Provides<br />You Provide<br />
  17. 17. Introducción<br />Content<br />Code<br />Component<br />XACT<br />XINPUT<br />XContent<br />Direct3D<br />Graphics<br />Audio<br />Input<br />Math<br />Application Model<br />Content Pipeline<br />Starter Kits<br />Storage<br />Games<br />Dos tipos de componentes<br />Extended<br />Framework<br />GameComponents<br />DrawableGameComponents<br />Core<br />Framework<br />Gamer <br />Services<br />Networking<br />Platform<br />Legend<br />Community<br />XNA Provides<br />You Provide<br />
  18. 18. Introducción<br />Las herramientas necesarias<br />http://creators.xna.com<br />
  19. 19. Estructura de un juego<br />Qué se necesita para construir un juego<br /><ul><li>Lógica del juego
  20. 20. Manejo del timer
  21. 21. Datos del juego
  22. 22. Gestión de recursos
  23. 23. Instrucciones del jugador
  24. 24. Cálculos matemáticos
  25. 25. Efectos especiales
  26. 26. Comunicación por red</li></li></ul><li>Estructura de un juego<br />Inicialización<br />Comienzo del juego<br />Descarga de recursos<br />Comprobación de la lógica<br />Carga de recursos<br />Pintado de la escena<br />
  27. 27. Manejo de periféricos<br />
  28. 28. Manejo de periféricos<br />¿Están las dos presionadas?<br />¿Está presionada?<br />¿Qué tecla es esta?<br />¿Ha sido pulsada?<br />
  29. 29. Manejo de periféricos<br /><ul><li>Keys = enumeración
  30. 30. KeyboardState = estructura
  31. 31. IsKeyDown: nos dice queteclaconcretaestápresionada
  32. 32. IskeyUp: nos dice queteclaconcretadeja de presionarse
  33. 33. GetPressedKeys: nos dice queteclasestánpulsadas
  34. 34. Keyboardclass
  35. 35. GetState: obtenemostodo el estado del teclado</li></li></ul><li>Manejo de periféricos<br /><ul><li>ButtonState = enumeración
  36. 36. MouseStatestructure
  37. 37. LeftMouseButton
  38. 38. MiddleMouseButton
  39. 39. RightMouseButton
  40. 40. ScrollWheelValue: obtenemos el desplazamiento
  41. 41. XButton1
  42. 42. XButton2
  43. 43. Mouseclass
  44. 44. GetState
  45. 45. SetPosition</li></li></ul><li>Manejo de periféricos<br /><ul><li>GamePad
  46. 46. SetVibration
  47. 47. GetState(jugador)
  48. 48. IsConnected
  49. 49. ButtonState
  50. 50. GamePadStatestructure
  51. 51. Buttons
  52. 52. DPad:(Left, Up, Right, Down)
  53. 53. ThumbSticks: (Left, Right)</li></li></ul><li>Content Pipeline<br />Centraliza toda clase de recursos:<br /><ul><li>Imágenes
  54. 54. Audio
  55. 55. Video
  56. 56. Modelos 3D
  57. 57. Fuentes
  58. 58. Etc…</li></ul>Prepara los recursosparaaccedermásrápidamente y ademáses extensible<br />
  59. 59. Content Pipeline<br />Tipo de dato<br />Archivo<br />ContentImporter<br />ContentProcessor<br />Tipo de dato<br />ContentTypeWriter<br />Archivo<br />ContentPipeline<br />
  60. 60. Content Pipeline<br />Tipo de dato<br />ContentTypeReader<br />Archivo <br />ContentPipeline<br />Juego<br />
  61. 61. Desarrollo en 2D<br />Manos a la obra<br />En la clase Game1<br />GraphicsDeviceManager<br />SpriteBatch<br />
  62. 62. Desarrollo en 2D<br />Dibujar un Sprite<br />Objeto Texture2D<br />Objeto Rectangle<br />
  63. 63. Desarrollo en 2D<br />Las colisiones<br />El método Intersects nos facilita la tarea<br />
  64. 64. Desarrollo en 2D<br />Música y efectossonoros<br />Dos objetos a tener encuenta:<br />SoundEffect<br />MediaLibrary<br />SoundEffect<br />Métodos útiles Play();<br />MediaLibrary<br />Métodos útiles<br />Play();<br />Stop();<br />IsRepeating<br />
  65. 65. Desarrollo en 2D<br />Sonido<br />Sonidos en XNA con XACT<br />Herramienta XACT instalada con XNA GS<br />www.soundsnap.com (Recursos de sonido)<br />
  66. 66. Desarrollo en 2D<br />Los controles<br />KeyboardState<br />GamePadState<br />privatevoidposicionTeclado()<br /> {<br />estadoTeclado = Keyboard.GetState();<br />Keys[] teclaspulsada = estadoTeclado.GetPressedKeys();<br />foreach (Keys ekey in teclaspulsada)<br /> {<br />if (ekey == Keys.Left)<br /> {<br />posicion_helip.X -= 8;<br /> }<br />…….<br />….<br />
  67. 67. Desarrollo en 2D<br />Animando los Sprites<br />Si está estático está muerto<br />
  68. 68. Desarrollo en 2D<br />“Inteligencia” del juego<br />Demasiadofácil MAL<br />Demasiadodificil MAL<br />
  69. 69. Windows Phone 7<br />
  70. 70. Windows Phone 7<br />Silverlight 3 (plus)<br />XNA<br />Visual Studio 2010<br />Visual Phone Developer Express<br />Single, integrated download<br />
  71. 71. Windows Phone 7<br />Nueva versión de XNA<br />Soporte 3D en el móvil<br />APIs similares a lasusadas en Windows and Xbox 360<br />
  72. 72. Enlaces<br />http://xna-para-torpes.blogspot.com<br />http://labloguera.net<br />http://labloguera.net/blogs/csharp/archive/tags/xna<br />http://creators.xna.com/es-ES/<br />http://www.codeplex.com/XNACommunity<br />http://msdn.microsoft.com/es-es/xna<br />http://msdn.microsoft.com/en-us/library/aa468128%28v=MSDN.10%29.aspx<br />http://blogs.msdn.com/shawnhar<br />
  73. 73. Email: cesarreneses@gmail.com<br />Blog: http://labloguera.net/blogs/csharp<br />© 2009 Microsoft Corporation. All rights reserved.<br />This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×