mirror of
https://codeberg.org/boyfailure/VectorBreakout.git
synced 2025-06-07 15:15:03 +10:00
Vector Breakout clone written in Java
src/main/java/dev/boyfailure/quajra/vectorbreakout | ||
.gitignore | ||
LICENSE | ||
pom.xml | ||
README.md |
Vector Breakout
A clone of Breakout built using swing/awt in Java
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.
CONTROLS
- Arrow keys (left and right): Move the paddle
- Space: Spawn a ball
- Enter: Pause
- Escape: Debug menu
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
- "Path-casting" (for lack of a better term) for ball collision
- 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.