Implementing state objects

This commit is contained in:
naomi 2025-05-11 05:09:50 +00:00
parent 0bb650e72e
commit 50cc8e2a7b
12 changed files with 813 additions and 499 deletions

View file

@ -1,11 +1,13 @@
# Vector Breakout
A clone of Breakout built using swing/awt in Java
A clone of Breakout built in pure Java, using AWT/Swing
Very early proof of concept for a "vector graphics engine" for arcade style games. Eventual plans to create a real vector graphics game engine, potentially using LWJGL, once I have enough knowledge and experience.
**Caveat emptor: I am a very novice programmer, and you might gag a bit when you see my code...**
The repository as is is built with JDK 21, but I am testing the code as far back as JDK 1.5.
This repository is built with JDK 21 (Maven), but I am testing the code as far back as JDK 1.5 (hurrah for people archiving old JDKs and NetBeans installers!).
Special thanks to my friend [Ada](https://github.com/ProphetofAtnu) for getting it through my head that I need to move game code out of the main class lal
___
@ -20,17 +22,8 @@ These controls may change, and I may add a controls config in the future.
___
## TODO
- Improve ball collision
- "Path-casting" (for lack of a better term) for ball collision
- The idea is to change ball collision to instead check if a brick/paddle/etc will be in its path in the next frame, and if so, execute the collision instructions
- Bouncing horizontally off the sides of bricks
- Implement levels as their own class
- Each level will have unique properties, like varying playfield width, brick count/layouts, etc
- Will be much better than just the single hardcoded level and each individual brick being put into an array
## ISSUES
- Ball sometimes passes through paddle, or gets stuck in right wall
- This should be fixed with the aforementioned collision changes once I get to that
## I AM AWARE THAT:
- I could use a switch statement for the score/lives/level display. However, I want backwards compatability because I'm a silly nerd :3, and JDK 1.5 doesn't support passing a split string through a switch statement. If there is a better way to get the individual digits, please let me know.
- Update hitboxes for bricks (the plan is to have individual sections of the brick make the ball move differently upon impact, sorta like how I did it in [the QuickBASIC version of the game](https://codeberg.org/boyfailure/quickout/src/branch/main/QUICKOUT.BAS))
- Add complete javadoc
- Implement menus
- Look into sound effects
- Clean up/optimize rendering code