Witajcie wszyscy! Mam problem z którym nie mogę sobie poradzić od kilku dni. Rysuję sobie mapę takim kodem:
Rectangle destinationRectangle =
new Rectangle(0, 0, 128, 64);
for (int y = 0; y < map.MapDimensions.Y; y++)
{
for (int x = 0; x < map.MapDimensions.X; x++)
{
int poprawkaX = x * v1 - y * v2 + TileOffset;
int poprawkaY = x * v3 + y * v4;
destinationRectangle.X =
(int)mapOriginPosition.X + poprawkaX;
destinationRectangle.Y =
(int)mapOriginPosition.Y + poprawkaY;
if (CheckVisibility(destinationRectangle))
{
Point mapPosition = new Point(x, y);
if (drawBase)
{
Rectangle sourceRectangle = new Rectangle(64*(map.BaseLayerMulti[x,y]-(int)(Math.Floor((double)(map.BaseLayerMulti[x,y]/10))*10)),(64* (int)(Math.Floor((double)(map.BaseLayerMulti[x, y] / 10)))) +32,64,32);
spriteBatch.Draw(map.Texture, destinationRectangle,
sourceRectangle, Color.White);
}
}
}
}
I problem mam z przekonwertowaniem współrzędnych(destinationRectangle) do mapy w rzucie izometrycznym(0;0, 1;2...)