From 4c0f8d1c02a1315d903790d3550a780d88bc6e64 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sat, 28 Jun 2025 21:51:45 +0200 Subject: [PATCH] feat: improve texture & design --- .../java/eu/midnightdust/yaytris/Tetris.java | 2 ++ .../eu/midnightdust/yaytris/ui/TetrisUI.java | 21 +++++++++--------- .../yaytris/util/CatppuccinColor.java | 19 ++++++++++++++++ src/main/resources/textures/tetromino.png | Bin 152 -> 154 bytes src/main/resources/textures/tetromino.pxo | Bin 815 -> 815 bytes 5 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/main/java/eu/midnightdust/yaytris/util/CatppuccinColor.java diff --git a/src/main/java/eu/midnightdust/yaytris/Tetris.java b/src/main/java/eu/midnightdust/yaytris/Tetris.java index 6139f01..c3af32e 100644 --- a/src/main/java/eu/midnightdust/yaytris/Tetris.java +++ b/src/main/java/eu/midnightdust/yaytris/Tetris.java @@ -52,8 +52,10 @@ public class Tetris { }; timer.scheduleAtFixedRate(gravityTask, 1, Settings.difficulty.getTimerPeriod()); } + public static void stopGame() { gravityTask.cancel(); + timer.purge(); if (ui.getMenuPanel() instanceof ScoreMenu) ((ScoreMenu) Tetris.ui.getMenuPanel()).gameOver(); ui.transferFocus(); } diff --git a/src/main/java/eu/midnightdust/yaytris/ui/TetrisUI.java b/src/main/java/eu/midnightdust/yaytris/ui/TetrisUI.java index 49e36cc..0e830f7 100644 --- a/src/main/java/eu/midnightdust/yaytris/ui/TetrisUI.java +++ b/src/main/java/eu/midnightdust/yaytris/ui/TetrisUI.java @@ -2,6 +2,7 @@ package eu.midnightdust.yaytris.ui; import eu.midnightdust.yaytris.Tetris; import eu.midnightdust.yaytris.game.Space; +import eu.midnightdust.yaytris.util.CatppuccinColor; import javax.imageio.ImageIO; import javax.swing.*; @@ -25,7 +26,7 @@ public class TetrisUI extends JFrame implements KeyListener { this.setTitle("Tetris"); this.setSize((int) (400 * guiScale), (int) (300 * guiScale)); this.setResizable(false); - this.getContentPane().setBackground(Color.DARK_GRAY); + this.getContentPane().setBackground(CatppuccinColor.MANTLE.getColor()); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setWindowPosition(this, 0); @@ -43,7 +44,7 @@ public class TetrisUI extends JFrame implements KeyListener { gamePanel = new GameCanvas(this); gamePanel.setBackground(Color.BLACK); - gamePanel.setBorder(new LineBorder(Color.GRAY, scale(2))); + gamePanel.setBorder(new LineBorder(CatppuccinColor.SURFACE0.getColor(), scale(2))); this.add(gamePanel); rescale(); @@ -91,8 +92,8 @@ public class TetrisUI extends JFrame implements KeyListener { Tetris.resetSpace(); rescale(); menuPanel = new MainMenu(scale(170), scale(40), scale(220), scale(226), this); - menuPanel.setBackground(Color.DARK_GRAY); - menuPanel.setBorder(new LineBorder(Color.GRAY, scale(2))); + menuPanel.setBackground(CatppuccinColor.BASE.getColor()); + menuPanel.setBorder(new LineBorder(CatppuccinColor.SURFACE0.getColor(), scale(2))); this.add(menuPanel); this.repaint(); } @@ -100,8 +101,8 @@ public class TetrisUI extends JFrame implements KeyListener { public void openSettings(ActionEvent actionEvent) { if (this.menuPanel != null) this.remove(menuPanel); menuPanel = new SettingsMenu(scale(170), scale(40), scale(220), scale(226), this); - menuPanel.setBackground(Color.DARK_GRAY); - menuPanel.setBorder(new LineBorder(Color.GRAY, scale(2))); + menuPanel.setBackground(CatppuccinColor.BASE.getColor()); + menuPanel.setBorder(new LineBorder(CatppuccinColor.SURFACE0.getColor(), scale(2))); this.add(menuPanel); this.repaint(); } @@ -109,8 +110,8 @@ public class TetrisUI extends JFrame implements KeyListener { public void openScoreMenu(ActionEvent actionEvent) { if (this.menuPanel != null) this.remove(menuPanel); menuPanel = new ScoreMenu(scale(170), scale(40), scale(220), scale(226), this); - menuPanel.setBackground(Color.DARK_GRAY); - menuPanel.setBorder(new LineBorder(Color.GRAY, scale(2))); + menuPanel.setBackground(CatppuccinColor.BASE.getColor()); + menuPanel.setBorder(new LineBorder(CatppuccinColor.SURFACE0.getColor(), scale(2))); this.add(menuPanel); this.repaint(); } @@ -152,7 +153,7 @@ public class TetrisUI extends JFrame implements KeyListener { case KeyEvent.VK_W: Tetris.getSpace().getCurrentTetromino().rotate(); break; - case KeyEvent.VK_DOWN: + case KeyEvent.VK_RIGHT: case KeyEvent.VK_D: Tetris.getSpace().getCurrentTetromino().move(1); break; @@ -160,7 +161,7 @@ public class TetrisUI extends JFrame implements KeyListener { case KeyEvent.VK_A: Tetris.getSpace().getCurrentTetromino().move(-1); break; - case KeyEvent.VK_RIGHT: + case KeyEvent.VK_DOWN: case KeyEvent.VK_S: Tetris.getSpace().getCurrentTetromino().fall(1); break; diff --git a/src/main/java/eu/midnightdust/yaytris/util/CatppuccinColor.java b/src/main/java/eu/midnightdust/yaytris/util/CatppuccinColor.java new file mode 100644 index 0000000..1b4d622 --- /dev/null +++ b/src/main/java/eu/midnightdust/yaytris/util/CatppuccinColor.java @@ -0,0 +1,19 @@ +package eu.midnightdust.yaytris.util; + +import java.awt.*; + +/* + Colors based on the [Catppuccin Mocha](https://github.com/catppuccin/catppuccin) color palette + */ +public enum CatppuccinColor { + CRUST(0x11111b), MANTLE(0x181825), BASE(0x1e1e2e), SURFACE0(0x313244); + + final Color color; + CatppuccinColor(int rgb) { + this.color = new Color(rgb); + } + + public Color getColor() { + return color; + } +} diff --git a/src/main/resources/textures/tetromino.png b/src/main/resources/textures/tetromino.png index 502c733d7995fbb2df0fec74df8179311fa32ee1..37f1a7cb6723b6dd6d423dc6a56acecce1f18bf9 100644 GIT binary patch delta 112 zcmV-$0FVEe0h$4jF=|o_>Kg44 zQBTK%kC|1Bh(C~`i0ooQ01HTwnU79@1>D5F!riX|JW)4=N!?T3^o6>o7qMU?8@J?w Q>i_@%07*qoM6N<$f+)@}(*OVf diff --git a/src/main/resources/textures/tetromino.pxo b/src/main/resources/textures/tetromino.pxo index fe6c170f3ce487ae1cf8194e1f810d832c7b755c..8b83ea41656075dd43787259624d838be830557c 100644 GIT binary patch delta 154 zcmZ3_ww{eQz?+#xgn@yBgJIj+I~#c?FbV?csQNGav@95afRTYgda^u|xKB=EWol8p zVRwK3fBF8F%a<+%82H?|dR26_)Qp&l3X3jFgHi>l*)kg?rpL{wW@2JGkTv0|;%;^o l{=)`_DO(v(teGsx7zKfJ)CJCijus3+z{tQLJz1Vf+$SfoGPNk) z@bt-(Kj$~MaC31582H$zsj;n=nh{e~Wz}VAP^us`TV|ug^tc(-lO|6-m^I<5;%;^o l{=)`_DO(v(teGsx