From 05d56568e41e25f58ce941ac43d597f52085b5a6 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Sat, 13 Jul 2024 19:31:25 +0200 Subject: [PATCH] fix #7: use only left mouse button to draw, it toggles cell state --- README.md | 9 ++++----- src/config.go | 8 ++++---- src/play.go | 10 ++++------ 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6c974e2..6d2274c 100644 --- a/README.md +++ b/README.md @@ -82,17 +82,16 @@ Usage of ./golsky: While it runs, there are a couple of commands you can use: -* left mouse click: set a cell to alife (also pauses the game) -* right mouse click: set a cell to dead + * space: pause or resume the game * while game is paused: press n to forward one step * page up: speed up * page down: slow down * Mouse wheel: zoom in or out * move mouse while left mouse button pressed: move canvas -* i: enter "insert" (draw) mode: use left mouse to set cells alife and right - button to dead. Leave with "space". While in insert mode, use middle mouse - button to drag grid. +* i: enter "insert" (draw) mode: use left mouse to toggle cells alife state. + Leave with insert mode "space". While in insert mode, use middle mouse + button to drag the grid. * r: reset to 1:1 zoom * escape: open menu * s: save game state to file (can be loaded with -l) diff --git a/src/config.go b/src/config.go index 10818ad..960b11f 100644 --- a/src/config.go +++ b/src/config.go @@ -52,7 +52,7 @@ const ( DEFAULT_CELLSIZE = 4 DEFAULT_ZOOMFACTOR = 400 DEFAULT_GEOM = "640x384" - DEFAULT_THEME = "standard" // "light" // inverse => "dark" + DEFAULT_THEME = "standard" ) const KEYBINDINGS string = ` @@ -62,9 +62,9 @@ const KEYBINDINGS string = ` - PAGE DOWN: slow down - MOUSE WHEEL: zoom in or out - LEFT MOUSE BUTTON: use to drag canvas, keep clicked and move mouse -- I: enter "insert" (draw) mode: use left mouse to set cells alife and right - button to dead. Leave with "space". While in insert mode, use middle mouse - button to drag grid. +- I: enter "insert" (draw) mode: use left mouse to toggle a cells alife state. + Leave with insert mode with "space". While in insert mode, use middle mouse + button to drag the grid. - R: reset to 1:1 zoom - ESCAPE: open menu, o: open options menu - S: save game state to file (can be loaded with -l) diff --git a/src/play.go b/src/play.go index e1d219c..761309e 100644 --- a/src/play.go +++ b/src/play.go @@ -264,10 +264,8 @@ func (scene *ScenePlay) CheckInput() { func (scene *ScenePlay) CheckDrawingInput() { if scene.Config.Drawmode { switch { - case ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft): - scene.ToggleCellOnCursorPos(Alive) - case ebiten.IsMouseButtonPressed(ebiten.MouseButtonRight): - scene.ToggleCellOnCursorPos(Dead) + case inpututil.IsMouseButtonJustPressed(ebiten.MouseButtonLeft): + scene.ToggleCellOnCursorPos() case inpututil.IsKeyJustPressed(ebiten.KeyEscape): scene.Config.Drawmode = false } @@ -465,14 +463,14 @@ func (scene *ScenePlay) Update() error { } // set a cell to alive or dead -func (scene *ScenePlay) ToggleCellOnCursorPos(alive uint8) { +func (scene *ScenePlay) ToggleCellOnCursorPos() { // use cursor pos relative to the world worldX, worldY := scene.Camera.ScreenToWorld(ebiten.CursorPosition()) x := int(worldX) / scene.Config.Cellsize y := int(worldY) / scene.Config.Cellsize if x > -1 && y > -1 && x < scene.Config.Width && y < scene.Config.Height { - scene.Grids[scene.Index].Data[y][x].State = alive + scene.Grids[scene.Index].Data[y][x].State ^= 1 scene.History.Age[y][x] = 1 } }