mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-10-01 15:46:17 -04:00
Toggle tile display in map test with F7 (#172)
* Toggle tile display in map test with F7 * Sub-tile display Cycle through tile display modes with F7
This commit is contained in:
parent
b9209541c8
commit
0475a11512
@ -3,6 +3,7 @@ package d2scene
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"os"
|
||||
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2helper"
|
||||
|
||||
@ -16,7 +17,7 @@ import (
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2render/d2ui"
|
||||
"github.com/hajimehoshi/ebiten"
|
||||
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||
"os"
|
||||
"github.com/hajimehoshi/ebiten/inpututil"
|
||||
)
|
||||
|
||||
type MapEngineTest struct {
|
||||
@ -150,6 +151,15 @@ func (v *MapEngineTest) Update(tickTime float64) {
|
||||
if v.uiManager.KeyPressed(ebiten.KeyRight) {
|
||||
v.mapEngine.OffsetX -= tickTime * 800
|
||||
}
|
||||
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyF7) {
|
||||
if v.mapEngine.ShowTiles < 2 {
|
||||
v.mapEngine.ShowTiles++
|
||||
} else {
|
||||
v.mapEngine.ShowTiles = 0
|
||||
}
|
||||
}
|
||||
|
||||
if v.uiManager.KeyPressed(ebiten.KeyEscape) {
|
||||
os.Exit(0)
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package d2mapengine
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image/color"
|
||||
"math"
|
||||
"math/rand"
|
||||
"strings"
|
||||
@ -16,6 +18,7 @@ import (
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2audio"
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common"
|
||||
"github.com/hajimehoshi/ebiten"
|
||||
"github.com/hajimehoshi/ebiten/ebitenutil"
|
||||
)
|
||||
|
||||
type EngineRegion struct {
|
||||
@ -30,6 +33,7 @@ type Engine struct {
|
||||
regions []EngineRegion
|
||||
OffsetX float64
|
||||
OffsetY float64
|
||||
ShowTiles int
|
||||
}
|
||||
|
||||
func CreateMapEngine(gameState *d2core.GameState, soundManager *d2audio.Manager, fileProvider d2interface.FileProvider) *Engine {
|
||||
@ -148,4 +152,26 @@ func (v *Engine) RenderTile(region *Region, offX, offY, x, y int, target *ebiten
|
||||
}
|
||||
region.RenderTile(offX+int(v.OffsetX), offY+int(v.OffsetY), x, y, d2enum.RegionLayerTypeWalls, i, target)
|
||||
}
|
||||
|
||||
if v.ShowTiles > 0 {
|
||||
subtileColor := color.RGBA{255, 100, 100, 140}
|
||||
tileColor := color.RGBA{255, 255, 255, 255}
|
||||
|
||||
ebitenutil.DrawLine(target, float64(offX)+v.OffsetX, float64(offY)+v.OffsetY, float64(offX)+v.OffsetX+80, float64(offY)+v.OffsetY+40, tileColor)
|
||||
ebitenutil.DrawLine(target, float64(offX)+v.OffsetX, float64(offY)+v.OffsetY, float64(offX)+v.OffsetX-80, float64(offY)+v.OffsetY+40, tileColor)
|
||||
|
||||
coords := fmt.Sprintf("%v,%v", x, y)
|
||||
ebitenutil.DebugPrintAt(target, coords, offX+int(v.OffsetX)-10, offY+int(v.OffsetY)+10)
|
||||
|
||||
if v.ShowTiles > 1 {
|
||||
for i := 1; i <= 4; i++ {
|
||||
x := (16 * i)
|
||||
y := (8 * i)
|
||||
ebitenutil.DrawLine(target, float64(offX-x)+v.OffsetX, float64(offY+y)+v.OffsetY,
|
||||
float64(offX-x)+v.OffsetX+80, float64(offY+y)+v.OffsetY+40, subtileColor)
|
||||
ebitenutil.DrawLine(target, float64(offX+x)+v.OffsetX, float64(offY+y)+v.OffsetY,
|
||||
float64(offX+x)+v.OffsetX-80, float64(offY+y)+v.OffsetY+40, subtileColor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user