Archivo

Archive for the ‘XNA’ Category

Los resultados del CodeCamp 2010

Hacia tiempo que no publicaba nada en el blog. La verdad que últimamente he estado bastante ocupado. Sin embargo, este fin de semana me lo he tomado libre y he estado en el CodeCamp programando  con WP7. La verdad que el móvil promete mucho. A ver si las operadoras españolas lo dejan por buen precio y me pillo uno.

image

Para ir abriendo boca, una pequeña captura del juego que estoy haciendo: “Daa-Boom!!!”. Ya os contaré de que va. Ahora es top-secret!

Anuncios
Categorías:Mis cosas, XNA Etiquetas: , ,

Nuevo Blog de XNA

2 septiembre 2010 Deja un comentario

Logo100XNA

Tengo el blog abandonado. Muy abandonado últimamente.

Sin embargo, debido a que mayoritariamente las entradas del blog trataban sobre XNA, he decidido crear un blog nuevo donde solo se hable de XNA y algunas cosas relacionadas con la programacion de videojuegos. De esta forma, dejo este blog para mis frikadas y otras cosas sin relacion con XNA.

Pues lo dicho, nuevo blog: www.100xna.wordpress.com

PD: A alguien le apetece mejorar el logo? Se nota que mi dominio del paint es limitado, XD

Categorías:Mis cosas, XNA Etiquetas:

[XNA] Anunciado XNA Game Studio 4.0

xnalogo  El conocido framework para la creación de videojuegos de Microsoft va a verse próximamente actualizado a una nueva versión.

En la nueva versión 4.0, Microsoft da soporte para juegos en smartphones que funcionen con Windows Phone 7, ampliando así las plataformas soportadas por XNA (Windows Phone 7, PC, Xbox360). Sin embargo, parece que deja de ser compatible con el reproductor musical Zune HD, el cual seguirá soportando solo hasta la versión 3.1 de XNA.

La característica más interesante de esta nueva plataforma es la posibilidad de continuar las partidas de nuestros juegos en cualquier plataforma. Por ejemplo, podríamos estar guardar una partida en PC y continuarla desde nuestro teléfono móvil mientras estamos en el autobús.

Alguna de las otras novedades que trae consigo el XNA Game Studio 4.0 son: API’s con aceleración 3D por Hardware para Windows Phone 7 Series, Intregración con Visual Studio 2010,  y Soporte de “buffered audio” en API’s de audio.

Más información: http://creators.xna.com/en-US/news/gdc2010

Categorías:XNA Etiquetas:

Parallax Scroll en XNA

22 febrero 2010 2 comentarios

Ya hacia tiempo que no escribía nada sobre XNA. Así que voy a escribir un cortito (pero útil) tutorial de como hacer Parallax Scroll en XNA.

 

image

 

Es muy facilito, y además de dejaros el código fuente del proyecto, os dejare también las imágenes y una explicación del código para que lo hagáis vosotros.

 

IMAGENES

Pinchar sobre la imagen, se os abrirá una nueva ventana. Guardaros esa imagen.

http://nosoyfriky.es/cosasxna/rocas.png

image

http://nosoyfriky.es/cosasxna/espacio.png

image

http://nosoyfriky.es/cosasxna/planeta.png

image

 

CLASE CapaParallax

Como podemos ver, esta clase tan simple representa una capa del fondo, el cual tiene una velocidad determinada, así como una textura.

 

  1 class CapaParallax
  2     {
  3         private Texture2D textura = null;
  4         private Vector2 posicion = Vector2.Zero;
  5         private Vector2 desplazamiento = Vector2.Zero;
  6         private float velocidad = 10.0f;
  7
  8         private float viewportWidth = 0.0f;
  9
10
11         /// <summary>
12         /// Constructor de la capa de parallax Scrolling
13         /// </summary>
14         /// <param name="graphics">Donde se dibujara la capa</param>
15         /// <param name="texture">Textura de la capa</param>
16         /// <param name="speed">Velocidad con la que se movera la capa</param>
17         public CapaParallax(GraphicsDeviceManager graphics, Texture2D texture, float speed)
18         {
19             textura = texture;
20
21             viewportWidth = graphics.GraphicsDevice.Viewport.Width;
22
23             posicion = new Vector2(0.0f, 0.0f);
24             desplazamiento = new Vector2(viewportWidth, 0.0f);
25
26             velocidad = speed;
27         } 
 
Para el funcionamiento del parallax, necesitamos que cada capa se mueva a una velocidad distinta. Cuanto más rápido sea el movimiento, nos parecerá que esta más próxima la capa.
 
 
 
 
30         /// <summary>
31         /// Actualiza la posicion de la capa
32         /// </summary>
33         /// <param name="gameTime">Tiempo transcurrido de juego</param>
34         public void Update(GameTime gameTime)
35         {
36
37              
38             
39             float delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
40
41             posicion.X -= velocidad * delta;
42             posicion.X = posicion.X % textura.Width;
43             
44         }
45
46
47         /// <summary>
48         /// Da la sensacion de que nos movemos a la derecha
49         /// </summary>
50         /// <param name="gameTime"></param>
51         public void MoverDerecha(GameTime gameTime)
52         {
53             float delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
54
55             posicion.X -= velocidad * delta;
56             posicion.X = posicion.X % textura.Width;
57         }
58
59         /// <summary>
60         /// Da la sensacion de que nos movemos a la izquierda
61         /// </summary>
62         /// <param name="gameTime"></param>
63         public void MoverIzquierda(GameTime gameTime)
64         {
65             float delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
66
67             posicion.X += velocidad * delta;
68             posicion.X = posicion.X % textura.Width;
69         }
70
71
72         /// <summary>
73         /// Dibuja la capa
74         /// </summary>
75         /// <param name="spriteBatch"></param>
76         public void Draw(SpriteBatch spriteBatch)
77         {
78             //Como es una capa "continua", tenemos que dibujarla
79             // otra vez cuando se salga de la pantalla
80             
81             if (posicion.X < viewportWidth)
82             {
83                 spriteBatch.Draw(textura, posicion, Color.White);
84             }
85
86             spriteBatch.Draw(textura, posicion + desplazamiento, Color.White);
87         }
88     }

 

 

GAME1.CS

Con esta clase ya implementada, tenemos que agregar en nuestro juegos las diferentes capas que queramos y almacenarlas todas en una lista.

  1         //Texturas de las capas
  2         private Texture2D planeta;
  3         private Texture2D espacio;
  4         private Texture2D rocas;
  5
  6         private List<CapaParallax> capasParallax;

 

O bien en el constructor o  bien en en metodo “Initialize” tenemos que crear las capas:

  1         protected override void Initialize()
  2         {
  3             // TODO: Add your initialization logic here
  4             planeta = this.Content.Load<Texture2D>("planeta");
  5             rocas = this.Content.Load<Texture2D>("rocas");
  6             espacio = this.Content.Load<Texture2D>("espacio");
  7
  8
  9             //Cuidado con el orden de insercion.
10             //1º lo mas alejado
11             capasParallax = new List<CapaParallax>();
12             capasParallax.Add(new CapaParallax(graphics, planeta, 0.0f)); //la velocidad es 0, no se mueve
13             capasParallax.Add(new CapaParallax(graphics, espacio, 10.0f));
14             //luego lo mas cercano
15             capasParallax.Add(new CapaParallax(graphics, rocas, 50.0f));
16
17             base.Initialize();
18         }

 

 

En el update tan facil como:

  1                 foreach (CapaParallax capa in capasParallax)
  2                 {
  3                     capa.Update(gameTime);
  4                 }

 

y lo mismo en el metodo Draw:

  1             foreach (CapaParallax capa in capasParallax)
  2             {
  3                 capa.Draw(spriteBatch);
  4             }

 

 

 

Descargar Código Fuente del Proyecto

Categorías:XNA Etiquetas: , ,

Tutorial Space Invaders

1 febrero 2010 2 comentarios

Para la gente que sigue el tutorial de XNA, os dejo con la ultima entrega que tengo programada, ya que no se cuando podre continuar con las entregas.

www.nosoyfriky.es/spaceInvaders/spaceInvaders8.rar

Un saludo

Categorías:XNA Etiquetas: , ,

Mercury Particle Engine

10 enero 2010 1 comentario

image

Navegando por Codeplex me he encontrado un proyecto muy interesante. Se trata de un Engine de partículas para XNA. ¿Qué para qué sirve? Pues por ejemplo, para hacer el humo del barco de abajo

image

 

Para explosiones como esta:

image

O para simular nieve en nuestro juego:

image

No lo he podido probar mucho, pero parece que es simple de usar y se pueden conseguir resultados realmente buenos, además de contar con una documentación bastante amplia y con ejemplos.

La web del proyecto en Codeplex es: http://mpe.codeplex.com/

Os dejo con un video para que veáis lo que se puede hacer. Bastante curioso.

Categorías:XNA Etiquetas: , ,

Tutorial [Entrega 5]: Añadiendo disparos de los enemigos

28 diciembre 2009 1 comentario

Llegados a este punto, tenemos nuestra nave frente a unas cuantas naves enemigas. Nuestra nave puede disparar y eliminar a los enemigos, pero los enemigos todavía no pueden dispara para intentar eliminarnos. Vamos a ver como podemos hacer esto después del salto.

 

Como ya sabéis, si tenéis alguna duda, podéis plantearla en el foro: http://www.foro.xna-tutorial.com/viewtopic.php?f=4&p=8#p8

 

Categorías:Mis cosas, XNA Etiquetas: , ,