Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agb2k/frogger-2.0
Maintained and improved version of a previous version of Frogger with JavaFX for Software Maintenance COMP2042 CW1 2020
https://github.com/agb2k/frogger-2.0
frogger game-development java javadocs javafx-library maintenance scenebuilder
Last synced: about 8 hours ago
JSON representation
Maintained and improved version of a previous version of Frogger with JavaFX for Software Maintenance COMP2042 CW1 2020
- Host: GitHub
- URL: https://github.com/agb2k/frogger-2.0
- Owner: agb2k
- Created: 2020-11-03T10:57:49.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-19T09:58:52.000Z (over 3 years ago)
- Last Synced: 2024-09-24T21:48:05.941Z (about 13 hours ago)
- Topics: frogger, game-development, java, javadocs, javafx-library, maintenance, scenebuilder
- Language: Java
- Homepage: https://agb2k.github.io/Frogger-2.0/
- Size: 11.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Frogger 2.0 (Originally COMP2042_CW_hcyab2)
Name: Abhinav George Basil
OWA: hcyab2
## Running the Game:
- This implementation of Frogger has been tested on 2 Windows devices on IntelliJ IDEA
- To run the game open up the project on IntelliJ IDEA
- Download the JavaFX library and place it on a folder
- Add the JavaFX library to Global Libraries (File -> Project Structure -> Global Libraries)
- Click the '+' button, select Java and direct to the lib folder of the JavFX library
- Add to FroggerTrial module and click apply
- Add the VM Arguments to Main by editing configurations: "--module-path **(JavaFX Library Path)** --add-modules=ALL-MODULE-PATH"
- Alternatively, import the project as a maven project and select javafx:run on the maven tab on the right side of in IntelliJ
## Key Changes Made for Maintenance and Extension
- Configured the file for Github to regularly push updated code to the respective repository for easier maintenance
- Used .gitignore file to avoid clutter in the repository
- On request, users can be added as a collaborator to view the repository
- Added JavaDocs for easier understanding and used Github pages to host the Javadocs online for easy viewing
- Frogger Javadocs link: https://agb2k.github.io/Frogger-2.0/
- The classes have been repackaged to make it easier to understand
- Broke up classes into separate classes to give each class unique functionality and follow the single responsibility principle
- Created the Game class which focuses on initializing the game itself from the Main class
- Created the AddObjects class which focuses on adding objects to the game from the Main class
- Created the FrogController class which focuses on the controls involved in moving the frog and placed it in the controller package
- Renamed classes for easier understanding
- Changed the Animal class to Frog
- Changed the Obstacle class to Vehicles
- Added new classes to provide new functionality
- The Highscore class helps with the functionality of the newly added high score menu
- The Mute class helps add the option to mute the game with the click of a button
- The Pause class helps pause the game by adding a pause button to the game itself
- The stop class helps stop the game by adding a stop button to the game itself
- The RoundScore class helps gather the scores for each round to be shown in the round score menu
- The Skeleton, Dragon and Minotaur class to add new characters to the game
- The PowerUp class to add a power up orb to the game
- The RoundScore class was made to help with the functionality of the newly created round score pop-up menu
- The lives class shows the number of lives left for the frog in the game itself
- The ActorFactory class is used to configure the factory design pattern for the AddObjects class
- Converted many blocks of code into their own methods to improve readability
- Improved encapsulation of data by making the majority of the data-types private while using required getters and setters to protect data
- Added a new background and adjusted it to make the game look nicer
- Created a fully functioning start menu, info menu, high score menu and high score (round score) pop-up using FXML, CSS and Scenebuilder
- The factory design pattern has been utilized to add actors to the AddObjects class to enhance maintainability by introducing the ActorFactory class
- The code has been organized to adhere to the MVC Pattern making the project cleaner and easier to understand
- Added a permanent high score list which stores data to Highscore.csv to be used in the High score menu created with FXML and Scenebuilder
- 10 levels with different characters, speed and arrangements have been created to make the game more interesting
- The music has been changed to add a little more **_funk_**
- Utilized JUnit 5 to test the functionality of different areas of the program
- Utilized Maven to handle dependencies
- Used IntelliJ to create a class diagram
- All resources used in this project are free to use for non-commercial applications- Main Menu:
![Main Menu](img_3.png)
- Level 10 of the Game:
![Level 10](img_2.png)
- Class Diagram:
![img.png](img.png)
- Github:
![img_1.png](img_1.png)
![img_4.png](img_4.png)
![img_5.png](img_5.png)
![img_6.png](img_6.png)
![img_7.png](img_7.png)
![img_8.png](img_8.png)