desarrollo de videojuegos con xna

Post on 05-Jul-2015

3.659 Views

Category:

Technology

10 Downloads

Preview:

Click to see full reader

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

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: cesarreneses@gmail.com

Blog: http://labloguera.net/blogs/csharp

top related