jueves, 28 de octubre de 2010

[Ebooks] Ebook GRATIS de WP7

Hoy se ha celebrado el PDC2010, donde se han anunciado jugosas novedades que ya tendremos tiempo de ir digiriendo. Mientras tanto, han publicado un ebook gratis sobre WP7:

9780735643352x

 

24 capítulos y 1000 páginas. Si quieres aprender a programar para Windows Phone 7 y no conoces unas buenas referencias, aquí tienes un buen libro donde comenzar.

Lo puedes descargar desde aquí

martes, 19 de octubre de 2010

[XNA] SlugKiller

Fruto de la MiniCodeCamp que hicimos con Microsoft en Madrid, ya tengo la versión 0.5 de SlugKiller:

image

Es un juego simple, sencillo y adictivo cuyo único argumento consiste en chafar las babosas que se escoden bajo suculentas berenjenas. Pero tenga usted cuidado, porque las babosas escupen bolas de babas que te impedirán ver la pantalla!

En cuanto disponga de tiempo iré añadiendo más features y features, pero por ahora queda esta versión jugable.

lunes, 18 de octubre de 2010

[XNA] Tratando sprites como quads empleando shaders

Una de las novedades de XNA 4.0 radica en la posibilidad de usar un SpriteBatch como si de un quad se tratara. La principal ventaja que tiene este método es por un lado que nos evitamos la necesidad de programar y gestionar el quad y por otro la posiblidad de tratar dicho sprite con Shaders.

Para ello vamos a emplera el shader básico que soporta XNA, es decir, el BasifEffect. Con este shader vamos a pinta el sprite. Por lo tanto, lo primero que tenemos que hacer es declarar las variables e instanciarlas:

   1: private SpriteBatch sprite;
   2: private BasicEffect basicEffect;
   1: public override void Initialize()
   2: {
   3:     this.sprite = new SpriteBatch(this.Game.GraphicsDevice);
   4:     this.basicEffect = new BasicEffect(this.Game.GraphicsDevice);
   5:     base.Initialize();
   6: }   

En el método Draw la estructura cambia un poco. Antes, para dibujar un sprite se tenía la siguiente estructura:

sprite.Begin(params….);

sprite.Draw(…);

sprite.End();

Al usar el shader, en primer lugar debemos configurarle los parámetros adecuados. En este caso, como lo vamos a tratar como un quad necesitamos indicarle la matriz de vista y la matriz de proyección. Posteriormente trataremos el sprite como se mostró anteriormente, pero insertándole el shader:

   1: this.basicEffect.View = game.WorldEngine.Camera.ViewMatrix;
   2: this.basicEffect.Projection = game.WorldEngine.Projection;
   3: sprite.Begin(0, BlendState.AlphaBlend, null, null, null, this.basicEffect);
   4: for (int i = 0; i < this.spriteList.Count; i++)
   5: {
   6:     this.sprite.Draw(this.spriteList[i].Texture, this.spriteList[i].Position, Color.White);
   7: }
   8: this.sprite.End();