From f6c2defbbe00cdfa8e05f8cbfe28daf327a6bf72 Mon Sep 17 00:00:00 2001 From: dvorakmortonxd Date: Tue, 27 Oct 2026 19:02:33 +0100 Subject: [PATCH] Finished the main menu --- README.md | 14 ++++++-- build.gradle.kts | 8 ++++- src/main/java/dev/dvorakmortonxd/Game.java | 28 ++++++++++++++- src/main/java/dev/dvorakmortonxd/Input.java | 29 +++++++++++++-- src/main/java/dev/dvorakmortonxd/update.java | 36 ++++++++++++++++++- src/main/resources/assets/gameFont.ttf | Bin 0 -> 118448 bytes src/main/resources/assets/manifest.json | 23 ++++++++++++ 7 files changed, 131 insertions(+), 7 deletions(-) create mode 100755 src/main/resources/assets/gameFont.ttf create mode 100755 src/main/resources/assets/manifest.json diff --git a/README.md b/README.md index 3b61190..6186770 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ -# retro-game +
-my "retro" game built with Java and Swing \ No newline at end of file +# Retro Game +## A simple retro-style game built with Java and Swing. + +
+ +## credits +so basically I made a zero-asset policy for this project except for the font,
+which I got from [openfont.org](https://openfont.org/), the font's name is "**Jacquard 12**" :)
+also I took some inspiration from these pinterest pages (I will list every single one):
+[Retro Game Titles by "cuilong li"](https://www.pinterest.com/pin/902408844107127097/)
+[SHOVEL KNIGHT GameBoy by "PixelJoint"](https://www.pinterest.com/pin/902408844107127145) \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 6967a47..e773016 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } group = "dev.dvorakmortonxd" -version = "1.0-SNAPSHOT" +version = "0.0.1a" repositories { mavenCentral() @@ -17,4 +17,10 @@ dependencies { tasks.test { useJUnitPlatform() +} + +tasks.jar { + manifest { + attributes["Main-Class"] = "dev.dvorakmortonxd.Game" + } } \ No newline at end of file diff --git a/src/main/java/dev/dvorakmortonxd/Game.java b/src/main/java/dev/dvorakmortonxd/Game.java index 59d15f6..4aeb5c1 100644 --- a/src/main/java/dev/dvorakmortonxd/Game.java +++ b/src/main/java/dev/dvorakmortonxd/Game.java @@ -3,6 +3,8 @@ package dev.dvorakmortonxd; import javax.swing.*; import java.awt.*; import java.awt.event.*; +import java.io.IOException; +import java.io.InputStream; public class Game extends JPanel implements ActionListener { @@ -16,6 +18,21 @@ public class Game extends JPanel implements ActionListener { // defines the current scene public String scene = "main_menu"; + // the currently chosen option (currently used for the main menu) + public int chosenOption = 1; + + // predefines the gameFont + public static Font gameFont; + + // colors I'll be using + public static Color backgroundGreen = new Color(45, 73, 45); + public static Color lightGreen = new Color(100, 120, 100); + public static Color darkerGreen = new Color(25, 50, 25); + + // text hover animation and if it should hover down or up + public int textHoverAmount = 0; + public boolean textHoverDown = true; + // routes to Update.java (actions) @Override public void actionPerformed(ActionEvent e) { @@ -35,12 +52,21 @@ public class Game extends JPanel implements ActionListener { setPreferredSize(new Dimension(windowWidth, windowHeight)); Input in = new Input(this); addKeyListener(in); - setBackground(new Color(45, 73, 45)); + setBackground(backgroundGreen); setFocusable(true); timer.start(); } public static void main(String[] args) { + // loads the game font (which is the only game asset, that's why I did not make a loadAsset class like I did in my space-sim game) + try { + InputStream inputStream = Game.class.getResourceAsStream("/assets/gameFont.ttf"); + gameFont = Font.createFont(Font.TRUETYPE_FONT, inputStream); + } catch (FontFormatException | IOException e) { + e.printStackTrace(); + gameFont = new Font("Arial", Font.PLAIN, 12); // fallback font + } + JFrame frame = new JFrame("My cool retro game"); frame.setResizable(false); // NOT resizable frame.add(new Game()); diff --git a/src/main/java/dev/dvorakmortonxd/Input.java b/src/main/java/dev/dvorakmortonxd/Input.java index 89307d8..df56e92 100644 --- a/src/main/java/dev/dvorakmortonxd/Input.java +++ b/src/main/java/dev/dvorakmortonxd/Input.java @@ -12,14 +12,39 @@ public class Input implements KeyListener { public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_ESCAPE -> System.exit(0); - case KeyEvent.VK_SPACE -> System.out.println("Hello world!"); + case KeyEvent.VK_UP, KeyEvent.VK_W -> { + if (m.scene.equals("main_menu")) { + if (m.chosenOption > 1) { + m.chosenOption--; + } else { + m.chosenOption++; + } + } + } + case KeyEvent.VK_DOWN, KeyEvent.VK_S -> { + if (m.scene.equals("main_menu")) { + if (m.chosenOption < 2) { + m.chosenOption++; + } else { + m.chosenOption--; + } + } + } + case KeyEvent.VK_ENTER, KeyEvent.VK_SPACE -> { + if (m.scene.equals("main_menu")) { + if (m.chosenOption == 1) { + m.scene = "game entry"; + } else { + System.exit(0); + } + } + } } } // what happens when you RELEASE a key on your keyboard @Override public void keyReleased(KeyEvent e) { switch (e.getKeyCode()) { - case KeyEvent.VK_SPACE -> System.out.println("Goodbye world!"); } } // I don't know what this is, or why it exists, I'll never use it but if this wasn't in the code, it'll throw an error. diff --git a/src/main/java/dev/dvorakmortonxd/update.java b/src/main/java/dev/dvorakmortonxd/update.java index 2192f98..ad9abce 100644 --- a/src/main/java/dev/dvorakmortonxd/update.java +++ b/src/main/java/dev/dvorakmortonxd/update.java @@ -4,9 +4,43 @@ import java.awt.*; public class Update { static void performPerTick(Game m) { + if (m.textHoverDown) { + m.textHoverAmount++; + if (m.textHoverAmount >= 30) { + m.textHoverDown = false; + } + } else { + m.textHoverAmount--; + if (m.textHoverAmount <= 0) { + m.textHoverDown = true; + } + } m.repaint(); } + static void paint(Game m, Graphics g) { - Toolkit.getDefaultToolkit().sync(); + if (m.scene.equals("main_menu")) { + g.setColor(m.lightGreen); + g.setFont(m.gameFont.deriveFont(75f)); + if (m.chosenOption == 1) { + g.drawString("play game", 260, 390); + g.setColor(m.darkerGreen); + g.drawString("exit game", 265, 460); + } else if (m.chosenOption == 2) { + g.drawString("exit game", 265, 460); + g.setColor(m.darkerGreen); + g.drawString("play game", 260, 390); + } else { + m.chosenOption = 1; + } + g.drawString("by dvorakmortonxd", 135, 290 + m.textHoverAmount / 4); + g.setFont(m.gameFont.deriveFont(150f)); + g.drawString("Retro", 230, 120 + m.textHoverAmount / 4); + g.drawString("Game", 235, 220 + m.textHoverAmount / 4); + g.setFont(m.gameFont.deriveFont(40f)); + g.drawString("tip: use arrow keys to navigate through menu", 65, 550); + g.drawString("and enter to pick an option!", 200, 580); + Toolkit.getDefaultToolkit().sync(); + } } } diff --git a/src/main/resources/assets/gameFont.ttf b/src/main/resources/assets/gameFont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..2454ec0fce7f352e878b005301ead0f8c68a4e3e GIT binary patch literal 118448 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/manifest.json b/src/main/resources/assets/manifest.json new file mode 100755 index 0000000..1d64bbc --- /dev/null +++ b/src/main/resources/assets/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "Jacquard 12", + "family": "Jacquard 12", + "description": "Jacquard is an expanded revival typeface from a Victorian needlepoint alphabet designed in Berlin by Heinrich Kuehn circa 1880. The Soft Type is a collection of typefaces designed for knitting color-work. Designing typefaces for knitting is essentially the same as creating pixel types. However, in practice, the pixel size is determined by the properties of the yarn in use. Scale is determined by the weight of the yarn as well as the number of pixels that make up the height of each letter. In this collection, the number following the typeface's name indicates the height of the capital letters for that typeface. These typefaces were designed with machine knitting in mind, but could be used for hand knitting, needlework, bedazzling, or many other textile crafts. Note: For Fair Isle knitting, you need to beware of floats and plan accordingly, as always. Each typeface has a “Regular” and “Charted” version, and some include multiple scales so you can fit type on your knits, no matter the project's size. Check out the charted version Jacquard 12 Charted . To contribute, please see github.com/scfried/soft-type-jacquard .", + "author": "Sarah Cadigan-Fried", + "website": "https://github.com/scfried/soft-type-jacquard", + "category": "Display", + "tags": [ + "display", + "google" + ], + "languages": [ + "en", + "es" + ], + "styles": [ + "Regular" + ], + "formats": [ + "ttf" + ], + "license": "SIL Open Font License 1.1" +} \ No newline at end of file