From e70378d6271bbd5bb3b0f05572e6618bb6f85bff Mon Sep 17 00:00:00 2001 From: Ziemas Date: Tue, 19 Nov 2019 00:23:33 +0100 Subject: [PATCH] Increase draw distance up and down (#209) * Scroll slowly in map test by holding shift * Increase draw distance up and down Avoid issues with long tiles popping in and out of view. (As long as camera is reasonably within bounds) --- d2core/d2scene/map_engine_testing.go | 24 ++++++++++++++++++++---- d2render/d2mapengine/engine.go | 6 +++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/d2core/d2scene/map_engine_testing.go b/d2core/d2scene/map_engine_testing.go index 97320ac3..ecf1d260 100644 --- a/d2core/d2scene/map_engine_testing.go +++ b/d2core/d2scene/map_engine_testing.go @@ -218,16 +218,32 @@ func (v *MapEngineTest) Update(tickTime float64) { shiftPressed := v.uiManager.KeyPressed(ebiten.KeyShift) if v.uiManager.KeyPressed(ebiten.KeyDown) { - v.mapEngine.OffsetY -= tickTime * 800 + if v.uiManager.KeyPressed(ebiten.KeyShift) { + v.mapEngine.OffsetY -= tickTime * 200 + } else { + v.mapEngine.OffsetY -= tickTime * 800 + } } if v.uiManager.KeyPressed(ebiten.KeyUp) { - v.mapEngine.OffsetY += tickTime * 800 + if v.uiManager.KeyPressed(ebiten.KeyShift) { + v.mapEngine.OffsetY += tickTime * 200 + } else { + v.mapEngine.OffsetY += tickTime * 800 + } } if v.uiManager.KeyPressed(ebiten.KeyLeft) { - v.mapEngine.OffsetX += tickTime * 800 + if v.uiManager.KeyPressed(ebiten.KeyShift) { + v.mapEngine.OffsetX += tickTime * 200 + } else { + v.mapEngine.OffsetX += tickTime * 800 + } } if v.uiManager.KeyPressed(ebiten.KeyRight) { - v.mapEngine.OffsetX -= tickTime * 800 + if v.uiManager.KeyPressed(ebiten.KeyShift) { + v.mapEngine.OffsetX -= tickTime * 200 + } else { + v.mapEngine.OffsetX -= tickTime * 800 + } } if inpututil.IsKeyJustPressed(ebiten.KeyF7) { diff --git a/d2render/d2mapengine/engine.go b/d2render/d2mapengine/engine.go index ac015083..5f13a324 100644 --- a/d2render/d2mapengine/engine.go +++ b/d2render/d2mapengine/engine.go @@ -180,7 +180,7 @@ func (v *Engine) GenTilesCache(region *EngineRegion) { func (v *Engine) RenderRegion(region EngineRegion, target *ebiten.Image) { for tileIdx := range region.Tiles { sx, sy := d2helper.IsoToScreen(region.Tiles[tileIdx].tileX+region.Rect.Left, region.Tiles[tileIdx].tileY+region.Rect.Top, int(v.OffsetX), int(v.OffsetY)) - if sx > -160 && sy > -160 && sx <= 880 && sy <= 1000 { + if sx > -160 && sy > -380 && sx <= 880 && sy <= 1240 { v.RenderPass1(region.Region, region.Tiles[tileIdx].offX, region.Tiles[tileIdx].offY, region.Tiles[tileIdx].tileX, region.Tiles[tileIdx].tileY, target) if v.ShowTiles > 0 { v.DrawTileLines(region.Region, region.Tiles[tileIdx].offX, region.Tiles[tileIdx].offY, region.Tiles[tileIdx].tileX, region.Tiles[tileIdx].tileY, target) @@ -190,13 +190,13 @@ func (v *Engine) RenderRegion(region EngineRegion, target *ebiten.Image) { } for tileIdx := range region.Tiles { sx, sy := d2helper.IsoToScreen(region.Tiles[tileIdx].tileX+region.Rect.Left, region.Tiles[tileIdx].tileY+region.Rect.Top, int(v.OffsetX), int(v.OffsetY)) - if sx > -160 && sy > -160 && sx <= 880 && sy <= 1000 { + if sx > -160 && sy > -380 && sx <= 880 && sy <= 1240 { v.RenderPass2(region.Region, region.Tiles[tileIdx].offX, region.Tiles[tileIdx].offY, region.Tiles[tileIdx].tileX, region.Tiles[tileIdx].tileY, target) } } for tileIdx := range region.Tiles { sx, sy := d2helper.IsoToScreen(region.Tiles[tileIdx].tileX+region.Rect.Left, region.Tiles[tileIdx].tileY+region.Rect.Top, int(v.OffsetX), int(v.OffsetY)) - if sx > -160 && sy > -160 && sx <= 880 && sy <= 1000 { + if sx > -160 && sy > -380 && sx <= 880 && sy <= 1240 { v.RenderPass3(region.Region, region.Tiles[tileIdx].offX, region.Tiles[tileIdx].offY, region.Tiles[tileIdx].tileX, region.Tiles[tileIdx].tileY, target) } }