Pregunta

Soy un novato en XNA por si acaso. Lo que trato de hacer es cargar una textura en un tamaño diferente de su original, o al menos tener la posibilidad de cambiar su tamaño después. Veo en algunos lugares que pueda utilizar:

Texture2D.FromStream(GraphicsDevice graphicsDevice, Stream stream, 
                 int width, int height, bool zoom)

Pero también leo que las texturas de carga de esta manera es ignorar el Director de Contenido, y que yo estoy haciendo el trabajo para el recolector de basura más difícil.

¿Cuál es la forma correcta de cargar una imagen en cualquier tamaño, con el Director de Contenido? Si eso no es posible, puedo cambiar su tamaño proporcionalmente, como el uso de un zoom?

Contexto: Estoy creando una tabla de n x n paces. Cuando n es demasiado grande necesidad i que automáticamente las paces se hace más pequeño.

¿Fue útil?

Solución

Para cargar la textura:

Texture2D tex = Content.Load<Texture2D>("somefile");

Para cambiar el tamaño Usa una de las sobrecargas SpriteBatch que se lleva a "escala" http://msdn.microsoft.com /en-us/library/microsoft.xna.framework.graphics.spritebatch.draw.aspx

float scale = .5f; //50% smaller
SpriteBatch.Draw(tex, position, source, Color.White, rotation, scale, SpriteEffects.None, 0f);

Si usted es nuevo en XNA, le sugiero que lea este breve tutorial , y también echa un vistazo a Educación Catálogo en create.msdn. com

Otros consejos

Texture2D texture;
protected override void LoadContent()
        {
...
         texture = Content.Load<Texture2D>("Tank");
...
        }
protected override void Draw(GameTime gameTime)
        {
...
         Rectangle destinationRectangle = new Rectangle(100, 100, 30, 10);
         spriteBatch.Draw(texture, destinationRectangle, Color.White);
...
         spriteBatch.End();
         base.Draw(gameTime);
        }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top