desarrollo de videojuegos con xna

37
Desarrollo de videojuegos con XNA César Reneses Cárcamo Microsoft Student Partner Coordinador Albacete DotNetClub

Upload: cesar-reneses

Post on 05-Jul-2015

3.659 views

Category:

Technology


10 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Desarrollo De Videojuegos Con Xna

Desarrollo de videojuegoscon XNA

César Reneses CárcamoMicrosoft Student PartnerCoordinador Albacete DotNetClub

Page 2: Desarrollo De Videojuegos Con Xna

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

Page 3: Desarrollo De Videojuegos Con Xna

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

Page 4: Desarrollo De Videojuegos Con Xna

Introducción¿ Donde podemos utilizar XNA ?

Page 5: Desarrollo De Videojuegos Con Xna

Introducción

Page 6: Desarrollo De Videojuegos Con Xna

Introducción

Page 7: Desarrollo De Videojuegos Con Xna

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)

Page 8: Desarrollo De Videojuegos Con Xna

Introducción

Page 9: Desarrollo De Videojuegos Con Xna

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

Page 10: Desarrollo De Videojuegos Con Xna

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

Page 11: Desarrollo De Videojuegos Con Xna

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

Page 12: Desarrollo De Videojuegos Con Xna

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()

Page 13: Desarrollo De Videojuegos Con Xna

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

Page 14: Desarrollo De Videojuegos Con Xna

Introducción

• Las herramientas necesarias

http://creators.xna.com

Page 15: Desarrollo De Videojuegos Con Xna

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

Page 16: Desarrollo De Videojuegos Con Xna

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

Page 17: Desarrollo De Videojuegos Con Xna

Manejo de periféricos

Page 18: Desarrollo De Videojuegos Con Xna

Manejo de periféricos

¿Está presionada?¿Están las dos presionadas?

¿Qué tecla es esta?

¿Ha sido pulsada?

Page 19: Desarrollo De Videojuegos Con Xna

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

Page 20: Desarrollo De Videojuegos Con Xna

Manejo de periféricos• ButtonState = enumeración

• MouseStatestructure

• LeftMouseButton

• MiddleMouseButton

• RightMouseButton

• ScrollWheelValue: obtenemos el desplazamiento

• XButton1

• XButton2

• Mouseclass

• GetState

• SetPosition

Page 21: Desarrollo De Videojuegos Con Xna

Manejo de periféricos

• GamePad

• SetVibration

• GetState(jugador)

• IsConnected

• ButtonState

• GamePadStatestructure

• Buttons

• DPad: (Left, Up, Right, Down)

• ThumbSticks: (Left, Right)

Page 22: Desarrollo De Videojuegos Con Xna

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

Page 23: Desarrollo De Videojuegos Con Xna

Content Pipeline

Archivo ContentImporter Tipo de dato

ContentProcessor

Tipo de datoContentTypeWriterArchivo

ContentPipeline

Page 24: Desarrollo De Videojuegos Con Xna

Content Pipeline

Tipo de dato

Juego

ContentTypeReaderArchivo

ContentPipeline

Page 25: Desarrollo De Videojuegos Con Xna

Desarrollo en 2D

• Manos a la obra• En la clase Game1

• GraphicsDeviceManager

• SpriteBatch

Page 26: Desarrollo De Videojuegos Con Xna

Desarrollo en 2D

• Dibujar un Sprite

• Objeto Texture2D

• Objeto Rectangle

Page 27: Desarrollo De Videojuegos Con Xna

Desarrollo en 2D

• Las colisiones

• El método Intersects nos facilita la tarea

Page 28: Desarrollo De Videojuegos Con Xna

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

Page 29: Desarrollo De Videojuegos Con Xna

Desarrollo en 2DSonidos en XNA con XACT

Herramienta XACT instalada con XNA GS

www.soundsnap.com (Recursos de sonido)

Page 30: Desarrollo De Videojuegos Con Xna

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;

}

…….

….

Page 31: Desarrollo De Videojuegos Con Xna

Desarrollo en 2D

• Animando los Sprites• Si está estático está muerto

Page 32: Desarrollo De Videojuegos Con Xna

Desarrollo en 2D• “Inteligencia” del juego

• Demasiado fácil MAL

• Demasiado dificil MAL

Page 33: Desarrollo De Videojuegos Con Xna

Windows Phone 7

Page 34: Desarrollo De Videojuegos Con Xna

Windows Phone 7

Silverlight 3 (plus)

XNA

Visual Studio 2010

Visual Phone Developer Express

Single, integrated download

Page 35: Desarrollo De Videojuegos Con Xna

Windows Phone 7

Nueva versión de XNA

Soporte 3D en el móvil

APIs similares a las usadas en Windows and Xbox 360

Page 36: Desarrollo De Videojuegos Con Xna

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

Page 37: Desarrollo De Videojuegos Con Xna

© 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