Repeat Texture in Rectangle Area

I used this code for a texture to repeat in a certain area,

spriteBatch.Begin( sortMode : SpriteSortMode.Deferred, samplerState : SamplerState.LinearWrap, transformMatrix : Camera2D.LevelInstance.GetViewMatrix());
     
spriteBatch.Draw(Texture, Position, Bounds, Color.White * Alpha, 0, Vector2.Zero, Scale, Orientation, 0);

spriteBatch.End();

In some Y positions works correctly

In other positions does not work

Why?

Bounds = new Rectangle(0,0,Texture.Width,Texture.Height);
or Bounds = new Rectangle(x, y, width,height); for sprite sheet

spriteBatch.Draw(Texture, Position, Bounds, Color.White * Alpha, 0, Vector2.Zero, Scale, Orientation, 0);

1 Like

But then spriteBatch only draws the texture size and does not repeat in the defined area. :confused:

some options and and leave Bounds unchanged

            Rectangle srcrect = new Rectangle(0,0,Texture.Height,Texture.Height);
            Vector2 scale = new Vector2((float)Bounds.Width/srect.Width,(float)Bounds.Height/srect.Height);
            
            spriteBatch.Draw(Texture, Bounds, Color.White * Alpha);
            spriteBatch.Draw(Texture, Bounds, srcrect, Color.White * Alpha);
            spriteBatch.Draw(Texture, Position, srcrect, Color.White * Alpha, 0, Vector2.Zero, scale,SpriteEffects.None, 0);

edit: more more more

1 Like

SOLVED! Thank you for your help! :slight_smile: I had some problems with the scale, in other parts of the code, so it ended up messing up the code.