diff --git a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapWriter.cs b/Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapWriter.cs
index e3bac9a3..c07ce780 100644
--- a/Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapWriter.cs
+++ b/Source/MonoGame.Extended.Content.Pipeline/Tiled/TiledMapWriter.cs
@@ -3,6 +3,7 @@ using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content.Pipeline;
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;
using MonoGame.Extended.Tiled;
+using TiledSharp;
namespace MonoGame.Extended.Content.Pipeline.Tiled
{
@@ -13,6 +14,7 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled
{
var map = value.Map;
output.Write(new Color(map.BackgroundColor.R, map.BackgroundColor.G, map.BackgroundColor.B));
+ output.Write(ConvertRenderOrder(map.RenderOrder).ToString());
output.Write(map.Width);
output.Write(map.Height);
output.Write(map.TileWidth);
@@ -55,5 +57,22 @@ namespace MonoGame.Extended.Content.Pipeline.Tiled
{
return typeof (TiledMapReader).AssemblyQualifiedName;
}
+
+ private static TiledMapRenderOrder ConvertRenderOrder(TmxMap.RenderOrderType renderOrder)
+ {
+ switch (renderOrder)
+ {
+ case TmxMap.RenderOrderType.RightDown:
+ return TiledMapRenderOrder.RightDown;
+ case TmxMap.RenderOrderType.RightUp:
+ return TiledMapRenderOrder.RightUp;
+ case TmxMap.RenderOrderType.LeftDown:
+ return TiledMapRenderOrder.LeftDown;
+ case TmxMap.RenderOrderType.LeftUp:
+ return TiledMapRenderOrder.LeftUp;
+ default:
+ return TiledMapRenderOrder.RightDown;
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Source/MonoGame.Extended/MonoGame.Extended.csproj b/Source/MonoGame.Extended/MonoGame.Extended.csproj
index b71b8748..2479522c 100644
--- a/Source/MonoGame.Extended/MonoGame.Extended.csproj
+++ b/Source/MonoGame.Extended/MonoGame.Extended.csproj
@@ -53,6 +53,7 @@
+
diff --git a/Source/MonoGame.Extended/Tiled/TiledLayer.cs b/Source/MonoGame.Extended/Tiled/TiledLayer.cs
index b3ab8e27..b02c22d2 100644
--- a/Source/MonoGame.Extended/Tiled/TiledLayer.cs
+++ b/Source/MonoGame.Extended/Tiled/TiledLayer.cs
@@ -40,8 +40,8 @@ namespace MonoGame.Extended.Tiled
if (region != null)
{
// not exactly sure why we need to compensate 1 pixel here. Could be a bug in MonoGame?
- var tx = x * (region.Width - 1);
- var ty = y * (region.Height - 1);
+ var tx = x * (_tiledMap.TileWidth - 1);
+ var ty = y * (_tiledMap.TileHeight - 1);
_spriteBatch.Draw(region, new Rectangle(tx, ty, region.Width, region.Height), Color.White);
}
diff --git a/Source/MonoGame.Extended/Tiled/TiledMap.cs b/Source/MonoGame.Extended/Tiled/TiledMap.cs
index 5fad1d3e..d801e74a 100644
--- a/Source/MonoGame.Extended/Tiled/TiledMap.cs
+++ b/Source/MonoGame.Extended/Tiled/TiledMap.cs
@@ -30,6 +30,7 @@ namespace MonoGame.Extended.Tiled
public int TileWidth { get; private set; }
public int TileHeight { get; private set; }
public Color? BackgroundColor { get; set; }
+ public TiledMapRenderOrder RenderOrder { get; set; }
public int WidthInPixels
{
diff --git a/Source/MonoGame.Extended/Tiled/TiledMapReader.cs b/Source/MonoGame.Extended/Tiled/TiledMapReader.cs
index aa38b984..caa117bf 100644
--- a/Source/MonoGame.Extended/Tiled/TiledMapReader.cs
+++ b/Source/MonoGame.Extended/Tiled/TiledMapReader.cs
@@ -1,3 +1,4 @@
+using System;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using MonoGame.Extended.Content;
@@ -9,6 +10,7 @@ namespace MonoGame.Extended.Tiled
protected override TiledMap Read(ContentReader input, TiledMap existingInstance)
{
var backgroundColor = input.ReadColor();
+ var renderOrder = (TiledMapRenderOrder) Enum.Parse(typeof (TiledMapRenderOrder), input.ReadString(), true);
var tileMap = new TiledMap(
graphicsDevice: input.ContentManager.GetGraphicsDevice(),
width: input.ReadInt32(),
@@ -16,7 +18,8 @@ namespace MonoGame.Extended.Tiled
tileWidth: input.ReadInt32(),
tileHeight: input.ReadInt32())
{
- BackgroundColor = backgroundColor
+ BackgroundColor = backgroundColor,
+ RenderOrder = renderOrder
};
var tileSetCount = input.ReadInt32();
diff --git a/Source/MonoGame.Extended/Tiled/TiledMapRenderOrder.cs b/Source/MonoGame.Extended/Tiled/TiledMapRenderOrder.cs
new file mode 100644
index 00000000..d9ef1356
--- /dev/null
+++ b/Source/MonoGame.Extended/Tiled/TiledMapRenderOrder.cs
@@ -0,0 +1,10 @@
+namespace MonoGame.Extended.Tiled
+{
+ public enum TiledMapRenderOrder
+ {
+ RightDown,
+ RightUp,
+ LeftDown,
+ LeftUp
+ }
+}
\ No newline at end of file
diff --git a/Source/Sandbox/Content/Content.mgcb b/Source/Sandbox/Content/Content.mgcb
index 7bc8baba..046bc42f 100644
--- a/Source/Sandbox/Content/Content.mgcb
+++ b/Source/Sandbox/Content/Content.mgcb
@@ -87,3 +87,23 @@
/processor:TiledMapProcessor
/build:test-tileset-map1.tmx
+#begin test-tileset-left-down.tmx
+/importer:TiledMapImporter
+/processor:TiledMapProcessor
+/build:test-tileset-left-down.tmx
+
+#begin test-tileset-left-up.tmx
+/importer:TiledMapImporter
+/processor:TiledMapProcessor
+/build:test-tileset-left-up.tmx
+
+#begin test-tileset-right-down.tmx
+/importer:TiledMapImporter
+/processor:TiledMapProcessor
+/build:test-tileset-right-down.tmx
+
+#begin test-tileset-right-up.tmx
+/importer:TiledMapImporter
+/processor:TiledMapProcessor
+/build:test-tileset-right-up.tmx
+
diff --git a/Source/Sandbox/Content/test-tileset-left-down.tmx b/Source/Sandbox/Content/test-tileset-left-down.tmx
new file mode 100644
index 00000000..429929fd
--- /dev/null
+++ b/Source/Sandbox/Content/test-tileset-left-down.tmx
@@ -0,0 +1,19 @@
+
+
diff --git a/Source/Sandbox/Content/test-tileset-left-up.tmx b/Source/Sandbox/Content/test-tileset-left-up.tmx
new file mode 100644
index 00000000..4da6b029
--- /dev/null
+++ b/Source/Sandbox/Content/test-tileset-left-up.tmx
@@ -0,0 +1,19 @@
+
+
diff --git a/Source/Sandbox/Content/test-tileset-right-down.tmx b/Source/Sandbox/Content/test-tileset-right-down.tmx
new file mode 100644
index 00000000..32a50cfc
--- /dev/null
+++ b/Source/Sandbox/Content/test-tileset-right-down.tmx
@@ -0,0 +1,19 @@
+
+
diff --git a/Source/Sandbox/Content/test-tileset-right-up.tmx b/Source/Sandbox/Content/test-tileset-right-up.tmx
new file mode 100644
index 00000000..4e11118a
--- /dev/null
+++ b/Source/Sandbox/Content/test-tileset-right-up.tmx
@@ -0,0 +1,19 @@
+
+
diff --git a/Source/Sandbox/SandboxGame.cs b/Source/Sandbox/SandboxGame.cs
index 505780e5..38d18a71 100644
--- a/Source/Sandbox/SandboxGame.cs
+++ b/Source/Sandbox/SandboxGame.cs
@@ -43,8 +43,8 @@ namespace Sandbox
_viewportAdapter = new BoxingViewportAdapter(GraphicsDevice, 800, 480);
_camera = new Camera2D(_viewportAdapter)
{
- Zoom = 0.5f,
- Position = new Vector2(900, 650)
+ Zoom = 1.5f,
+ //Position = new Vector2(900, 650)
};
Window.AllowUserResizing = true;
@@ -58,7 +58,7 @@ namespace Sandbox
_spriteBatch = new SpriteBatch(GraphicsDevice);
_backgroundTexture = Content.Load("hills");
_bitmapFont = Content.Load("courier-new-32");
- _tiledMap = Content.Load("level01");
+ _tiledMap = Content.Load("test-tileset-left-down");
}
protected override void UnloadContent()