locked
Reducir una imagen RRS feed

  • Pregunta

  • Queria saber como se hace para reducir el tamaño de un spritesheet, os dejo el codigo q tengo hecho a ver si me podeis ayudar

    Texture2D figura;
    
    protected override void LoadContent()
    {
          figura = this.Content.Load<Texture2D>(@"Imagenes\fajedrez");
    }
    protected override void Draw(GameTime gameTime)
    {
          //recorto del spritesheet el cuadrado de la figura
           Rectangle rect = new Rectangle(0, 40, 42, 90);
          //lo que quiero es reducir el cuadrado seleccionado
          //es decir que la imagen que tengo en el recuadro se disminuya
           spriteBatch.Draw(figura,new Vector2(0,0),rect,Color.White);
    }
    


    jueves, 2 de febrero de 2012 11:35

Respuestas

  • Ahora mismo la única forma que se me ocurre es haciendo una llamada a Draw con más parámetros. Por ejemplo:

    spriteBatch.Draw(figura, new Vector2(0,0), rect, Color.White,
                    0, new Vector2(-15, -10), (float)0.50, SpriteEffects.None, 1);

    Con (float)0.50 reduces la imagen a un 50% y con new Vector2(-15, -10) la centras ya que al reducir la imagen, ésta sigue teniendo el mismo tamaño de rectángulo por lo que se posiciona en la esquina superior izquierda del rectángulo (los valores que he puesto son inventados).

    EDIT: otra opción sería crear el rectángulo acorde con la imagen reducida, así te ahorrarías tener que centrarla.

    Desconozco si hay alguna forma más "elegante" de hacerlo.
    Saludos.






    • Editado Jose Achepé jueves, 2 de febrero de 2012 12:46
    • Marcado como respuesta hectorrp jueves, 2 de febrero de 2012 13:17
    jueves, 2 de febrero de 2012 12:20