image_width = Switches.tileset.Width / target_cols;
image_height = Switches.tileset.Height / target_rows;
Color[] data=new Color[image_height*image_width];
Texture2D temp = new Texture2D(Switches.device, image_width, image_height);
Switches.images = new List<Texture2D>();
Switches.positions = new List<Vector2>();
for (int y = 0; y*image_height < Switches.tileset.Height; y++)
{
for(int x=0;x*image_width<Switches.tileset.Width;x++)
{
data = new Color[image_height * image_width];
Switches.tileset.GetData<Color>(0,
new Rectangle(x * image_width, y * image_height, image_width, image_height),
data, x*image_width + (y * image_width), image_height * image_width);
temp.SetData<Color>(data);
Switches.images.Add(temp);
Switches.positions.Add(new Vector2(x*image_width,y*image_height));
}
}
thats my code, in the example im use tile width/height is 32x32 and the image is 64x32 (only 2 tiles)