diff --git a/konstructor/engines/easy_ebitengine/screen.playground.go b/konstructor/engines/easy_ebitengine/screen.playground.go index 07c1ed4..b55d55d 100644 --- a/konstructor/engines/easy_ebitengine/screen.playground.go +++ b/konstructor/engines/easy_ebitengine/screen.playground.go @@ -16,6 +16,7 @@ func (e *Engine) PlaygroundUpdate() { func (e *Engine) PlaygroundDraw(screen *ebiten.Image) { e.PlaygroundBackgroundDraw(screen) + e.PlaygroundHeaderDraw(screen) e.PlaygroundPlatformsDraw(screen) e.PlaygroundItemsDraw(screen) e.PlaygroundNPCsDraw(screen) @@ -27,32 +28,6 @@ func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) { e.PlaygroundAssetDraw(screen, playground.Render, konstructor.Position{}) } -func (e *Engine) PlaygroundPlatformsDraw(screen *ebiten.Image) { - playground := e.GetPlayground() - for _, platform := range playground.Platforms { - e.PlaygroundAssetDraw(screen, platform.Type.Render, platform.Position) - } -} - -func (e *Engine) PlaygroundItemsDraw(screen *ebiten.Image) { - playground := e.GetPlayground() - for _, item := range playground.Items { - e.PlaygroundAssetDraw(screen, item.Type.Render, item.Position) - } -} - -func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) { - playground := e.GetPlayground() - for _, npc := range playground.NPCs { - e.PlaygroundAssetDraw(screen, npc.Type.Render, npc.Position) - } -} - -func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) { - player := e.Domain.GetDefaultPlayer() - e.PlaygroundAssetDraw(screen, player.Type.Render, player.Position) -} - func (e *Engine) GetPlayground() konstructor.Playground { level := e.Domain.GetLevel(e.KContext.CurrentLevel) return level.Playgrounds[e.KContext.CurrentPlayground] diff --git a/konstructor/engines/easy_ebitengine/screen.playground.header.go b/konstructor/engines/easy_ebitengine/screen.playground.header.go new file mode 100644 index 0000000..7be79d0 --- /dev/null +++ b/konstructor/engines/easy_ebitengine/screen.playground.header.go @@ -0,0 +1,35 @@ +package easy_ebitengine + +import ( + "game/konstructor" + "image/color" + + "github.com/hajimehoshi/ebiten" + "github.com/hajimehoshi/ebiten/text" +) + +func (e *Engine) PlaygroundHeaderDraw(screen *ebiten.Image) { + header_bg, _ := ebiten.NewImage(e.Config.Screen.Width, 20, ebiten.FilterDefault) + header_bg.Fill(color.RGBA{ + R: 0, + G: 255, + B: 0, + A: 200, + }) + + fl := konstructor.FontLayout{ + Path: "assets/fonts/ArcadeClassic.ttf", + DPI: 72, + Size: 24, + } + + face := fl.GetFontFace() + + geoM := ebiten.GeoM{} + geoM.Scale(float64(e.Config.Screen.Scale), float64(e.Config.Screen.Scale)) + screen.DrawImage(header_bg, &ebiten.DrawImageOptions{ + GeoM: geoM, + }) + text.Draw(screen, e.Config.Name, face, 10, 20, color.Black) + +} diff --git a/konstructor/engines/easy_ebitengine/screen.playground.item.go b/konstructor/engines/easy_ebitengine/screen.playground.item.go new file mode 100644 index 0000000..a08e765 --- /dev/null +++ b/konstructor/engines/easy_ebitengine/screen.playground.item.go @@ -0,0 +1,10 @@ +package easy_ebitengine + +import "github.com/hajimehoshi/ebiten" + +func (e *Engine) PlaygroundItemsDraw(screen *ebiten.Image) { + playground := e.GetPlayground() + for _, item := range playground.Items { + e.PlaygroundAssetDraw(screen, item.Type.Render, item.Position) + } +} diff --git a/konstructor/engines/easy_ebitengine/screen.playground.npc.go b/konstructor/engines/easy_ebitengine/screen.playground.npc.go new file mode 100644 index 0000000..3417cd2 --- /dev/null +++ b/konstructor/engines/easy_ebitengine/screen.playground.npc.go @@ -0,0 +1,10 @@ +package easy_ebitengine + +import "github.com/hajimehoshi/ebiten" + +func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) { + playground := e.GetPlayground() + for _, npc := range playground.NPCs { + e.PlaygroundAssetDraw(screen, npc.Type.Render, npc.Position) + } +} diff --git a/konstructor/engines/easy_ebitengine/screen.playground.platform.go b/konstructor/engines/easy_ebitengine/screen.playground.platform.go new file mode 100644 index 0000000..7a86209 --- /dev/null +++ b/konstructor/engines/easy_ebitengine/screen.playground.platform.go @@ -0,0 +1,10 @@ +package easy_ebitengine + +import "github.com/hajimehoshi/ebiten" + +func (e *Engine) PlaygroundPlatformsDraw(screen *ebiten.Image) { + playground := e.GetPlayground() + for _, platform := range playground.Platforms { + e.PlaygroundAssetDraw(screen, platform.Type.Render, platform.Position) + } +} diff --git a/konstructor/engines/easy_ebitengine/screen.playground.player.go b/konstructor/engines/easy_ebitengine/screen.playground.player.go new file mode 100644 index 0000000..9190665 --- /dev/null +++ b/konstructor/engines/easy_ebitengine/screen.playground.player.go @@ -0,0 +1,8 @@ +package easy_ebitengine + +import "github.com/hajimehoshi/ebiten" + +func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) { + player := e.Domain.GetDefaultPlayer() + e.PlaygroundAssetDraw(screen, player.Type.Render, player.Position) +}