scale and common drawing method

This commit is contained in:
2023-07-07 19:07:47 +02:00
parent 05ec82d8e8
commit 9a7be89da6
2 changed files with 18 additions and 34 deletions

View File

@@ -24,61 +24,45 @@ func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) { func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
playground := e.GetPlayground() playground := e.GetPlayground()
render := playground.Render e.PlaygroundAssetDraw(screen, playground.Render, konstructor.Position{})
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{})
} }
func (e *Engine) PlaygroundPlatformsDraw(screen *ebiten.Image) { func (e *Engine) PlaygroundPlatformsDraw(screen *ebiten.Image) {
playground := e.GetPlayground() playground := e.GetPlayground()
geoM := ebiten.GeoM{}
for _, platform := range playground.Platforms { for _, platform := range playground.Platforms {
render := platform.Type.Render e.PlaygroundAssetDraw(screen, platform.Type.Render, platform.Position)
geoM.Reset()
geoM.Translate(float64(platform.Position.X), float64(platform.Position.Y))
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
GeoM: geoM,
})
} }
} }
func (e *Engine) PlaygroundItemsDraw(screen *ebiten.Image) { func (e *Engine) PlaygroundItemsDraw(screen *ebiten.Image) {
playground := e.GetPlayground() playground := e.GetPlayground()
geoM := ebiten.GeoM{} for _, item := range playground.Items {
for _, platform := range playground.Items { e.PlaygroundAssetDraw(screen, item.Type.Render, item.Position)
render := platform.Type.Render
geoM.Reset()
geoM.Translate(float64(platform.Position.X), float64(platform.Position.Y))
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
GeoM: geoM,
})
} }
} }
func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) { func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) {
playground := e.GetPlayground() playground := e.GetPlayground()
geoM := ebiten.GeoM{} for _, npc := range playground.NPCs {
for _, platform := range playground.NPCs { e.PlaygroundAssetDraw(screen, npc.Type.Render, npc.Position)
render := platform.Type.Render
geoM.Reset()
geoM.Translate(float64(platform.Position.X), float64(platform.Position.Y))
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
GeoM: geoM,
})
} }
} }
func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) { func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) {
player := e.Domain.GetDefaultPlayer() player := e.Domain.GetDefaultPlayer()
geoM := ebiten.GeoM{} e.PlaygroundAssetDraw(screen, player.Type.Render, player.Position)
render := player.Type.Render
geoM.Reset()
geoM.Translate(float64(player.Position.X), float64(player.Position.Y))
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
GeoM: geoM,
})
} }
func (e *Engine) GetPlayground() konstructor.Playground { func (e *Engine) GetPlayground() konstructor.Playground {
level := e.Domain.GetLevel(e.KContext.CurrentLevel) level := e.Domain.GetLevel(e.KContext.CurrentLevel)
return level.Playgrounds[e.KContext.CurrentPlayground] return level.Playgrounds[e.KContext.CurrentPlayground]
} }
func (e *Engine) PlaygroundAssetDraw(screen *ebiten.Image, render konstructor.Render, position konstructor.Position) {
geoM := ebiten.GeoM{}
geoM.Translate(float64(position.X), float64(position.Y))
geoM.Scale(float64(e.Config.Screen.Scale), float64(e.Config.Screen.Scale))
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
GeoM: geoM,
})
}

View File

@@ -22,8 +22,8 @@ func main() {
Config: &konstructor.Config{ Config: &konstructor.Config{
Name: "Game", Name: "Game",
Screen: &konstructor.ScreenConfig{ Screen: &konstructor.ScreenConfig{
Width: 320, Width: 640,
Height: 240, Height: 480,
Scale: 2, Scale: 2,
}, },
KeyMap: konstructor.KeyMap{ KeyMap: konstructor.KeyMap{