|
|
eb7486f57c
|
feat(menu): play "menu enter" sound when button action is triggered
|
2025-10-28 09:52:58 +01:00 |
|
|
|
ef798896c3
|
feat(menu): use list.SetSelected() on Enter() so that no audio is played.
|
2025-10-28 09:47:50 +01:00 |
|
|
|
f3d7995bc2
|
feat(ui): add ListBox.SetSelected()
this function will set the selected widget without triggering a onSelect event.
|
2025-10-28 09:47:19 +01:00 |
|
|
|
8a02249845
|
feat: implement persistant configuration
|
2025-10-28 06:38:56 +01:00 |
|
|
|
30b194619f
|
feat(ui): add options menu
|
2025-10-28 06:38:56 +01:00 |
|
|
|
6cf0e4abb4
|
feat(ui): implement new ui system
|
2025-10-28 06:38:56 +01:00 |
|
|
|
0bc5863284
|
feat(ui): call onSelect in Select() function and make Next()/Previous() use that function
|
2025-10-28 06:38:55 +01:00 |
|
|
|
a1756549f9
|
feat(ui): menu should not call audio module directly, make it more modular with and onSelect event callback
|
2025-10-28 06:38:55 +01:00 |
|
|
|
bcd6025aa3
|
refactor: move ui code from game/state/handlers/menu.go to its own package in game/ui
|
2025-10-28 06:38:55 +01:00 |
|
|
|
190c6ad914
|
chore: rename Rows to Lines in Grid as Lines are more common in tetris.
|
2025-10-28 06:38:55 +01:00 |
|
|
|
db9ec53d35
|
feat: add line clear animation
|
2025-10-28 06:38:55 +01:00 |
|
|
|
ca481ad7c7
|
feat(menu): put entries rendering into its own function
|
2025-10-07 18:19:35 +02:00 |
|
|
|
9b11f3b220
|
feat(menu): draw logo
|
2025-10-06 18:51:15 +02:00 |
|
|
|
4319ec55e5
|
feat(gameover): make gameover state abit more interesting.
|
2025-10-06 18:15:40 +02:00 |
|
|
|
53ac3840ba
|
feat(gameover): only allow the user to switch state after the gameover sound has been played.
|
2025-09-26 12:10:54 +02:00 |
|
|
|
8f8be3d6f7
|
feat(gameover): center text
|
2025-09-24 19:48:57 +02:00 |
|
|
|
dcad4ad0a5
|
feat(gameover): play gameover sound
|
2025-09-24 19:48:57 +02:00 |
|
|
|
68b67e4585
|
feat(menu): play sound effects.
|
2025-09-24 19:48:57 +02:00 |
|
|
|
288e710b9f
|
feat: improve menu
|
2025-09-24 19:48:34 +02:00 |
|
|
|
35e73f2b37
|
feat(fsm): make the special state "quit" exit the fsm.
|
2025-09-24 18:32:50 +02:00 |
|
|
|
cd750a5508
|
fix: reset state on Enter()
|
2025-09-24 18:03:28 +02:00 |
|
|
|
54a7821df0
|
feat: detect game over condition and switch state.
|
2025-09-24 18:02:07 +02:00 |
|
|
|
6d15a806f6
|
feat: add basic game over state
|
2025-09-21 12:18:02 +02:00 |
|
|
|
53a31ea8ad
|
feat: add basic menu state
|
2025-09-21 12:17:53 +02:00 |
|
|
|
29225b7007
|
feat: refactor gameplay logic from main.go to a state machine handler.
|
2025-09-21 12:16:42 +02:00 |
|
|
|
75b4981566
|
feat: add basic state machine implementation
|
2025-09-21 12:15:17 +02:00 |
|
|
|
5c4503268f
|
feat: add game/shape_queue.go
|
2025-09-17 06:38:37 +02:00 |
|
|
|
14520e047c
|
feat: add score type
|
2025-09-15 08:50:52 +02:00 |
|
|
|
2a7f394b7f
|
feat(grid): add ClearFullRows()
|
2025-09-15 08:06:39 +02:00 |
|
|
|
1d7423d886
|
feat(grid): add MoveRowDown()
|
2025-09-15 08:06:02 +02:00 |
|
|
|
890331991f
|
feat(grid): add ClearRow()
|
2025-09-15 08:05:39 +02:00 |
|
|
|
eb31bdf50c
|
feat(grid): add IsRowFull()
|
2025-09-15 08:05:02 +02:00 |
|
|
|
6131b751e5
|
feat(shape): add RotateCW() and RotateCCW()
|
2025-09-15 06:54:20 +02:00 |
|
|
|
aeaf6cb5c4
|
feat(collision): check grid bounds in x axis.
|
2025-09-15 06:47:48 +02:00 |
|
|
|
dab2570b76
|
feat(collision): check for collision against blocks in the grid.
|
2025-09-14 22:38:10 +02:00 |
|
|
|
27c10af424
|
feat: add CheckShapeCollision()
|
2025-09-14 22:16:30 +02:00 |
|
|
|
02157a12ea
|
feat(draw): add DrawShape()
|
2025-09-14 22:16:29 +02:00 |
|
|
|
4dd6d93653
|
feat(draw): add grid.DrawBlock()
|
2025-09-14 22:16:29 +02:00 |
|
|
|
656487903e
|
feat: add shape struct
|
2025-09-14 22:16:29 +02:00 |
|
|
|
1b9ba081e2
|
feat: make rendering work with the grid struct.
|
2025-09-14 22:16:29 +02:00 |
|
|
|
2a84c7bf6a
|
feat: add game/grid.go
|
2025-09-14 22:16:29 +02:00 |
|
|
|
6e21b1fcb2
|
feat: add game/block.go
This type represents a single block in a grid.
|
2025-09-14 22:16:29 +02:00 |
|
|
|
0245a5cb43
|
Initial commit
|
2025-09-14 22:16:29 +02:00 |
|