From 9fe1d27f802ec1dbfda7f0e060da2dd76b97ea46 Mon Sep 17 00:00:00 2001 From: dvorakmortonxd Date: Mon, 19 Oct 2026 09:54:09 +0200 Subject: [PATCH] Cool planet floating icon :3 --- README.md | 7 ++++- assets/planet-ZX311.png | Bin 0 -> 10472 bytes src/main/java/dev/dvorakmortonxd/Game.java | 32 +++++++++++++++++++-- 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 assets/planet-ZX311.png diff --git a/README.md b/README.md index bfde822..fdf90b7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # My own SpaceSim written in Java pretty self explanatory idk what else to write.. +## docs i'd like to keep close +Swing tutorial (Oracle): https://docs.oracle.com/javase/tutorial/uiswing/ JFrame, JPanel, key listeners, timers, etc. +Java 2D graphics tutorial: https://docs.oracle.com/javase/tutorial/2d/ drawing shapes, images, and Graphics2D. + ## credits for assets -Ive used font from [OpenFont Library](https://openfont.org/) (the one called Caveat Brush) \ No newline at end of file +Ive used font from [OpenFont Library](https://openfont.org/) (the one called Caveat Brush) +all other assets are made by me, images are made in krita. \ No newline at end of file diff --git a/assets/planet-ZX311.png b/assets/planet-ZX311.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e80f86b68dae7b026a43c8e32487398f7ff718 GIT binary patch literal 10472 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 eYXllR0{;(W+ZpN`tu)mD0000 45) { + planetfloatDirection = "down"; + } + } else { + planetfloat--; + if (planetfloat < 0) { + planetfloatDirection = "up"; + } + } repaint(); // triggers render } @@ -54,7 +76,11 @@ public class Game extends JPanel implements ActionListener, KeyListener { g.setColor(Color.GRAY); g.setFont(caveat.deriveFont(Font.BOLD, 72f)); - g.drawString("Very Cool Space Sim", 38, 80); + g.drawString("Very Cool Space Sim", 120, 80); + + if (planetZX311 != null) { + g.drawImage(planetZX311, 375, 150+planetfloat/3, 128*3, 128*3, this); + } } @Override