From 289a0e9f281c98c454ceeb2f7612ed9e81fdad1c Mon Sep 17 00:00:00 2001 From: Shane Duncan Date: Thu, 31 Jul 2025 15:24:13 +1000 Subject: [PATCH 1/4] add isometric renderer --- assets/test_isometric.tmx | 76 ++++++++++++++++++++++++++++ assets/tilesets/isometric.tsx | 4 ++ assets/tilesets/isometric_tiles.png | Bin 0 -> 2251 bytes render/isometric.go | 54 ++++++++++++++++++++ render/renderer.go | 8 ++- render/renderer_test.go | 57 +++++++++++++++++++++ 6 files changed, 197 insertions(+), 2 deletions(-) create mode 100644 assets/test_isometric.tmx create mode 100755 assets/tilesets/isometric.tsx create mode 100755 assets/tilesets/isometric_tiles.png create mode 100644 render/isometric.go create mode 100644 render/renderer_test.go diff --git a/assets/test_isometric.tmx b/assets/test_isometric.tmx new file mode 100644 index 0000000..aa82c44 --- /dev/null +++ b/assets/test_isometric.tmx @@ -0,0 +1,76 @@ + + + + + +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,9,9,9,9,9,9,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,9,9,9,9,9,9,9,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,9,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,12,12,12,12,12,12,12,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,12,12,12,12,12,12,12,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0, +0,0,0,12,12,0,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,13,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + diff --git a/assets/tilesets/isometric.tsx b/assets/tilesets/isometric.tsx new file mode 100755 index 0000000..19ab86a --- /dev/null +++ b/assets/tilesets/isometric.tsx @@ -0,0 +1,4 @@ + + + + diff --git a/assets/tilesets/isometric_tiles.png b/assets/tilesets/isometric_tiles.png new file mode 100755 index 0000000000000000000000000000000000000000..40f5e470c782dad6ad16ed4b428f064584f481d6 GIT binary patch literal 2251 zcmdT_`#;kQAD_8IUgQ!_k2oZk4oRI-E@kLjl3PtDLQO}0zU$ptzVboF+en>qFfz9#I1SfU24 zGR#|-|J3JjSZ)`C%kVUB1C=~^c{!tZye2%eQq;%8E;v{9Nd$c2YmzAQ7wpZ1>TRc6 zz-4Ko>xjfqF2b*vRX~C?vr4kM#(+es!X<^@Jf@`FDSU86$imBonLsSwIw%gDNEH>* z(&rZO4L=!9i17XHZf@v`WxBf|v6%@NJu=!%>@#URC47QLZx;muz}9S+Tr0xrT4Kwb>tx@=f>)MY_WRkA z2!8+Gkyj&G?|-IYoKZ*pE&ibv;*}-Kur!p8LE-2=!wo~JC4j@V76y|q^_y|fP$y;9D(#e>2h|;b7;_*HCvJs0~8AV)ByguM?^HD#enMWfc z)zMEBx08*%?+V_;Gjj1=Uv;dArIvuheT^Vnk`WSwzvhf(R#zuqpgwUKPtmKf&(5b? z0^z%LV%;_#sJwe#P`Ps>7e?wsLCCQ@Z<`PPigMIlD~sM%!lwY}sqhQ~DyzXu;t<7G z(f2pb=|=csbgZtaHcKCuX=^Ck$^s#N^;_=eEi~Ois)xJEw=o`SYh+mr+Gk%;jrY`+ zYr~CR)*yxi&KwSVct^I%+TDa>JP8_>e~7GbYlOBr|9D5!-OpPj$zVun$Os!M_Ib!; zpJWw!?XA#;b6@>U-kIE?Irmi0dSx4nnj-@1PD&?9L{jCCb)x|6V|4n4ItVglk=$dVl^U79CJ){_l3e z$;?BTSc)Vr(_p375Z7kWbu3GF@Qh)Ite0s$fHgIno zCs}^eG?i)zV<{S$gYF+np|HmupnvP#u%{!v3;J1r`4&aVXJT0Jwp2rssIV^cPTvZO zgPc7?7b==W{GkH>-mhrxSQyEb*JB+;1ro0<1@|Qtm>f{*dZX-eqAjek1nn0^3M%lD z(w)%9rKn+Sb7|_##-0^HFPasI=D+Rh+7vMhi!qYr;~iix?BMX#HkJREQGDZ&yEsd)26;zF_;_Bdla4um z``J3sEkT!Wj0u!o%8rzzU!=9{x~*jP*d*440;5V~hv}GoY1w*@6+^gMQXhMqZk-Aq z40PlhyX}?5RH^_@@yF>nlaGX2@G)gZ2J8#WbO}RE+#{Djnx9iO?hQ}nW&BEf?`Jjp zD`fAdE6`J;Q+bggr=c`{Qjo;)4IN90kU90-_>>Gibv@zc#npPR`NqZmKyL7>0u`98 z)jnfm@F~mMU}H7bLCuCne~q@wSsSe!O;DGiZFA)a{EehKM)aN~BBMTuM5J>{gI+Ku zq8R<8KR{e{{SN8gsJGs$fntRoy}t*@sX?I+zZNfdS_)*~*F4$_4b znQ}NO$Tqh$7g=Mq*sqEeR5LhERw} Date: Wed, 6 Aug 2025 12:01:18 +1000 Subject: [PATCH 2/4] correct isometric output working --- render/isometric.go | 11 +++++++---- render/renderer_test.go | 18 ++++++++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/render/isometric.go b/render/isometric.go index 2d71594..e08b29d 100644 --- a/render/isometric.go +++ b/render/isometric.go @@ -16,7 +16,11 @@ func (e *IsometricRendererEngine) Init(m *tiled.Map) { } func (e *IsometricRendererEngine) GetFinalImageSize() image.Rectangle { - return image.Rect(0, 0, e.m.Width*e.m.TileWidth, e.m.Height*e.m.TileHeight) + side := e.m.Height + e.m.Width + hx := side * e.m.TileWidth/2 + hy := side * e.m.TileHeight/2 + + return image.Rect(0, 0, hx, hy) } func (e *IsometricRendererEngine) RotateTileImage(tile *tiled.LayerTile, img image.Image) image.Image { @@ -44,11 +48,10 @@ func (e *IsometricRendererEngine) GetTilePosition(x, y int) image.Rectangle { actualSpriteHeight := th * ratio - offsetX := e.m.Width * stepX - offsetY := -th + offsetX := e.m.Height * e.m.TileWidth/2 sx := (x - y) * stepX + offsetX - (tw / ratio) - sy := (x + y) * stepY + offsetY + sy := (x + y) * stepY - (th) return image.Rect(sx, sy, sx + tw, sy + actualSpriteHeight) } \ No newline at end of file diff --git a/render/renderer_test.go b/render/renderer_test.go index 778e92a..24ec35b 100644 --- a/render/renderer_test.go +++ b/render/renderer_test.go @@ -1,10 +1,13 @@ package render import ( + "image" "os" "testing" "github.com/lafriks/go-tiled" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestRenderer_RenderOrthogonalMap(t *testing.T) { @@ -45,13 +48,24 @@ func TestRenderer_RenderIsometricMap(t *testing.T) { } renderer.RenderVisibleLayers() - //renderer.RenderLayer(0) + //renderer.RenderLayer(0)' - w, _ := os.Create("../assets/test_render_isomap.png") + outputPath := "../assets/test_render_isomap.png" + + w, _ := os.Create(outputPath) defer w.Close() if err = renderer.SaveAsPng(w); err != nil { t.Error(err) } + file, err := os.Open(outputPath) + require.NoError(t, err) + defer file.Close() + + img, _, err := image.Decode(file) + require.NoError(t, err) + + assert.Equal(t, 800, img.Bounds().Dx(), "image width should be 800 pixels") + assert.Equal(t, 400, img.Bounds().Dy(), "image height should be 400 pixels") } \ No newline at end of file From 2dc663f57bfcb86385bf03d9fe7616633a3dc40a Mon Sep 17 00:00:00 2001 From: Shane Duncan Date: Tue, 9 Sep 2025 11:22:28 +1000 Subject: [PATCH 3/4] use tile image widths for rendering rather than map position widths --- render/isometric.go | 21 ++++++++++++--------- render/orthogonal.go | 8 +++----- render/renderer.go | 7 ++++--- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/render/isometric.go b/render/isometric.go index e08b29d..05bb277 100644 --- a/render/isometric.go +++ b/render/isometric.go @@ -38,20 +38,23 @@ func (e *IsometricRendererEngine) RotateTileImage(tile *tiled.LayerTile, img ima return timg } -func (e *IsometricRendererEngine) GetTilePosition(x, y int) image.Rectangle { +func (e *IsometricRendererEngine) GetTilePosition(x, y int) image.Point { tw, th := e.m.TileWidth, e.m.TileHeight - ratio := tw / th + stepX := tw / 2 + stepY := th / 2 - stepX := tw / ratio - stepY := th / ratio - - actualSpriteHeight := th * ratio + //actualSpriteHeight := th * 2 offsetX := e.m.Height * e.m.TileWidth/2 - sx := (x - y) * stepX + offsetX - (tw / ratio) - sy := (x + y) * stepY - (th) + offsetY := 0 + if tw > th { + offsetY = -th + } + + sx := (x - y) * stepX + offsetX - stepX + sy := (x + y) * stepY + offsetY - return image.Rect(sx, sy, sx + tw, sy + actualSpriteHeight) + return image.Pt(sx, sy) } \ No newline at end of file diff --git a/render/orthogonal.go b/render/orthogonal.go index cfe762d..0f2de33 100644 --- a/render/orthogonal.go +++ b/render/orthogonal.go @@ -61,9 +61,7 @@ func (e *OrthogonalRendererEngine) RotateTileImage(tile *tiled.LayerTile, img im } // GetTilePosition returns tile position in image. -func (e *OrthogonalRendererEngine) GetTilePosition(x, y int) image.Rectangle { - return image.Rect(x*e.m.TileWidth, - y*e.m.TileHeight, - (x+1)*e.m.TileWidth, - (y+1)*e.m.TileHeight) +func (e *OrthogonalRendererEngine) GetTilePosition(x, y int) image.Point { + return image.Pt(x*e.m.TileWidth, + y*e.m.TileHeight) } diff --git a/render/renderer.go b/render/renderer.go index cdb2ae5..e0eebff 100644 --- a/render/renderer.go +++ b/render/renderer.go @@ -54,7 +54,7 @@ type RendererEngine interface { Init(m *tiled.Map) GetFinalImageSize() image.Rectangle RotateTileImage(tile *tiled.LayerTile, img image.Image) image.Image - GetTilePosition(x, y int) image.Rectangle + GetTilePosition(x, y int) image.Point } // Renderer represents an rendering engine. @@ -169,13 +169,14 @@ func (r *Renderer) _renderLayer(layer *tiled.Layer) error { } pos := r.engine.GetTilePosition(x, y) + renderRect := image.Rect(pos.X, pos.Y, pos.X + img.Bounds().Dx(), pos.Y + img.Bounds().Dy()) if layer.Opacity < 1 { mask := image.NewUniform(color.Alpha{uint8(layer.Opacity * 255)}) - draw.DrawMask(r.Result, pos, img, img.Bounds().Min, mask, mask.Bounds().Min, draw.Over) + draw.DrawMask(r.Result, renderRect, img, img.Bounds().Min, mask, mask.Bounds().Min, draw.Over) } else { - draw.Draw(r.Result, pos, img, img.Bounds().Min, draw.Over) + draw.Draw(r.Result, renderRect, img, img.Bounds().Min, draw.Over) } i++ From 7da1011839d75c89f66ee46f4743a22e2bdd6e10 Mon Sep 17 00:00:00 2001 From: Shane Duncan Date: Thu, 11 Sep 2025 11:51:14 +1000 Subject: [PATCH 4/4] add test output folder, cleanup --- .gitignore | 1 + assets/test_isometric.tmx | 4 ++-- render/isometric.go | 6 ++---- render/render_objects_test.go | 2 +- render/renderer_test.go | 18 ++++++++++++++---- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 4502932..f3f73ff 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ debug /tmx2img vendor/ map.png +assets/test_output/ diff --git a/assets/test_isometric.tmx b/assets/test_isometric.tmx index aa82c44..80e2f6c 100644 --- a/assets/test_isometric.tmx +++ b/assets/test_isometric.tmx @@ -29,10 +29,10 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1073741835,0,2147483659,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1610612751,0,2684354572,3221225486,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,11,0,0,0,0,0,0,0, diff --git a/render/isometric.go b/render/isometric.go index 05bb277..96153f4 100644 --- a/render/isometric.go +++ b/render/isometric.go @@ -44,17 +44,15 @@ func (e *IsometricRendererEngine) GetTilePosition(x, y int) image.Point { stepX := tw / 2 stepY := th / 2 - //actualSpriteHeight := th * 2 - offsetX := e.m.Height * e.m.TileWidth/2 offsetY := 0 if tw > th { - offsetY = -th + offsetY = tw - th } sx := (x - y) * stepX + offsetX - stepX - sy := (x + y) * stepY + offsetY + sy := (x + y) * stepY - offsetY return image.Pt(sx, sy) } \ No newline at end of file diff --git a/render/render_objects_test.go b/render/render_objects_test.go index 20820cb..71ad447 100644 --- a/render/render_objects_test.go +++ b/render/render_objects_test.go @@ -41,7 +41,7 @@ func TestRenderer_RenderObjectGroup(t *testing.T) { renderer.RenderObjectGroup(0) - w, _ := os.Create("../assets/test_render_objects.png") + w, _ := os.Create("../assets/test_output/test_render_objects.png") defer w.Close() if err = renderer.SaveAsPng(w); err != nil { diff --git a/render/renderer_test.go b/render/renderer_test.go index 24ec35b..7a841b3 100644 --- a/render/renderer_test.go +++ b/render/renderer_test.go @@ -4,16 +4,27 @@ import ( "image" "os" "testing" + "path/filepath" "github.com/lafriks/go-tiled" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) +func TestMain(m *testing.M) { + dir := filepath.Join("..", "assets", "test_output") + if err := os.MkdirAll(dir, 0755); err != nil { + os.Exit(1) + } + + exitCode := m.Run() + os.Exit(exitCode) +} + func TestRenderer_RenderOrthogonalMap(t *testing.T) { tiledMap, err := tiled.LoadFile("../assets/test_wangsets_map.tmx") - if err != nil { + if err != nil { t.Error(err) return } @@ -26,7 +37,7 @@ func TestRenderer_RenderOrthogonalMap(t *testing.T) { renderer.RenderVisibleLayers() - w, _ := os.Create("../assets/test_orthogonal.png") + w, _ := os.Create("../assets/test_output/test_render_orthogonal.png") defer w.Close() if err = renderer.SaveAsPng(w); err != nil { @@ -48,9 +59,8 @@ func TestRenderer_RenderIsometricMap(t *testing.T) { } renderer.RenderVisibleLayers() - //renderer.RenderLayer(0)' - outputPath := "../assets/test_render_isomap.png" + outputPath := "../assets/test_output/test_render_isomap.png" w, _ := os.Create(outputPath) defer w.Close()