Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con Texturas y DirectX

Iniciado por Endilicam, 23 de Febrero de 2007, 12:39:17 AM

« anterior - próximo »

Endilicam

Buenas, soy un usuario nuevo de este foro que llevo leyendo un tiempo y tengo un problemilla.

He buscado en el foro y sobretodo por google y probado todo lo que se me ocurre y no encuentro solución.

Programo un juego en 2D con DirectX 9 y en C# (ésto último no creo que sea relevante pero por si acaso).

Al lio, leo una imagen de un archivo y lo pongo en un Texture así, la imagen es de 32x32:

TextureLoader.FromFile(device, "nombreImagen.png", 0, 0, 0, 0, Format.A8B8G8R8, Pool.Managed, Filter.None, Filter.None, Color.Gray.ToArgb());

Después creo el objeto "Sprite", lo inicio, etc. y luego quiero dibujarlo:

sprite.Draw(objetoTextura, new Rectangle(0, 0, 32, 32), cen, posicion, Color.White);

Donde cen y posicion son Vector3.

La cuestión es que si en el método "Draw" de "Sprite", en el "Rectangle" que le paso pongo:

new Rectangle(10, 10, 32, 32)

Porque quiero sólo coger del 10,10 al 32,32 de la textura y me pone la textura de 32x32, una parte correcta y otra distorsionada. Así que deduje que si la textura que he metido en la clase Texture no se puede recortar más pequeña de lo que mide (32x32). Cuando yo lo que quiero sólo mostrar la porción de código de 10,10 a 32,32.

Así que me fuí a donde se lee la textura pongo otra vez el código:

TextureLoader.FromFile(device, "nombreImagen.png", 0, 0, 0, 0, Format.A8B8G8R8, Pool.Managed, Filter.None, Filter.None, Color.Gray.ToArgb());

Después de poner el nombre del archivo, puedo poner la altura y el ancho. Me va perfecto si quiero coger del 0,0 al 20,20 por ejemplo pero no me va bien si quiero coger del 10,10 al 32,32.

Supongo que habrá alguna forma de tratar texturas, recortarlas, coger la porción que te interese, etc. es decir, ya me serviría con tener un "Texture" de 32x32 y coger una parte de él y tener un "Texture" de 10x10.

Siento si es muy largo el post pero quería que quedase claro, si falta o se necesita cualquier información no dudéis en pedirla.

Gracias de antemano.

Endilicam.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.