From 507ac1885389b449b7c0e12bb620b2b2a2306ef8 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Sat, 1 Jun 2024 00:02:26 +0200 Subject: [PATCH] toggle directly in scene's Draw, but fails too --- game.go | 7 +++---- scene-menu.go | 8 +------- scene-options.go | 1 + scene-play.go | 11 ++--------- 4 files changed, 7 insertions(+), 20 deletions(-) diff --git a/game.go b/game.go index e5043db..a7f72e0 100644 --- a/game.go +++ b/game.go @@ -1,6 +1,8 @@ package main import ( + "fmt" + "github.com/hajimehoshi/ebiten/v2" ) @@ -51,9 +53,6 @@ func (game *Game) Update() error { scene := game.GetCurrentScene() scene.Update() - // FIXME: should work, but doesn't - //ebiten.SetScreenClearedEveryFrame(scene.Clearscreen()) - next := scene.GetNext() if next != game.CurrentScene { @@ -64,7 +63,7 @@ func (game *Game) Update() error { game.CurrentScene = next } - //fmt.Printf("Clear Screen: %t\n", ebiten.IsScreenClearedEveryFrame()) + fmt.Printf("Clear Screen: %t\n", ebiten.IsScreenClearedEveryFrame()) return nil } diff --git a/scene-menu.go b/scene-menu.go index 6e0f8e0..935c8b4 100644 --- a/scene-menu.go +++ b/scene-menu.go @@ -62,17 +62,11 @@ func (scene *SceneMenu) Update() error { } func (scene *SceneMenu) Draw(screen *ebiten.Image) { - //op := &ebiten.DrawImageOptions{} - // op.GeoM.Reset() - // op.GeoM.Translate(0, 0) - - // screen.DrawImage(scene.Game.Screen, op) - + ebiten.SetScreenClearedEveryFrame(false) scene.Ui.Draw(screen) } func (scene *SceneMenu) Leave() { - ebiten.SetScreenClearedEveryFrame(true) scene.SetNext(Play) } diff --git a/scene-options.go b/scene-options.go index 5ee1a8b..67c7e39 100644 --- a/scene-options.go +++ b/scene-options.go @@ -60,6 +60,7 @@ func (scene *SceneOptions) Update() error { } func (scene *SceneOptions) Draw(screen *ebiten.Image) { + ebiten.SetScreenClearedEveryFrame(false) scene.Ui.Draw(screen) } diff --git a/scene-play.go b/scene-play.go index cca020e..8266e5b 100644 --- a/scene-play.go +++ b/scene-play.go @@ -158,16 +158,7 @@ func (scene *ScenePlay) CheckInput() { os.Exit(0) } - // FIXME: works from here - if inpututil.IsKeyJustPressed(ebiten.KeyK) { - scene.Clear = !scene.Clear - fmt.Printf("Clear: %t\n", scene.Clear) - ebiten.SetScreenClearedEveryFrame(scene.Clear) - } - - // FIXME: and this does have no effect. WHY?!?!? if inpututil.IsKeyJustPressed(ebiten.KeyEscape) { - ebiten.SetScreenClearedEveryFrame(false) scene.SetNext(Menu) } @@ -412,6 +403,8 @@ func (scene *ScenePlay) ToggleCellOnCursorPos(alive int64) { // draw the new grid state func (scene *ScenePlay) Draw(screen *ebiten.Image) { + ebiten.SetScreenClearedEveryFrame(true) + // we fill the whole screen with a background color, the cells // themselfes will be 1px smaller as their nominal size, producing // a nice grey grid with grid lines