This is our submission for our final project in the ICS4U0 course, where we had to create a game with the topic of adversity in Java. Our game covers safety in the workplace, presented as a turn-based RPG inspired by Undertale. It is coded with JavaFX, so the project should be easy to setup within any IDE running Java 8.
- Transfer the
resources
folder's contents intosrc
(ex.Logo.png
would be directly insrc
) - Open
DrJavaProject.drjava
(found in the root directory) - Ensure you have your compiler set to JDK 8. We developed our project under
JDK 8.0_161
specifically. You can download it from Oracle's site - Open
Main.java
,Compile
the project andRun
it.
- First, clone this repository (
File > New > Project from Version Control > Git
and pastehttps://github.com/0ffz/ICS4U0_Final.git
). - We strongly recommend using IntelliJ, as the project should be almost ready to work with, using it. Simply open the project's root directory in IntelliJ and the project should load.
- Next, go to
File > Project Sructure
(shortcutCtrl+Alt+Shift+S
), go to theProject
tab and set your JDK toJava 8
. You may need to create the JDK by pressing theNew
button and linking to where it is installed. On Windows, this isC:\Program Files\Java\jdk1.8.0_<version>
by default. - Run the
Main.java
file undersrc
by opening it, and pressingCtrl+Shift+F10
This project is hosted on GitHub but also contains version numbers in the top comments of each class.
They are split into three sections x.y.z
x
describes the overall state of the class.1
signifies it is viable for the final product,0
signifies it is unfinished.y
describes the date of the update.0
: May 21, 20191
: May 27, 20192
: June 3, 20193
: June 10, 2019 - The final due date of
z
describes the number of version the file has gone through, starting from 1.
If there is no author mentioned next to an edit, it has been done by the first listed author in the @author
tag.
The basis of the GameRunner class originated from a Money Bag Collecting demo. The main aspects of code remaining from it are the input listener's ArrayList of inputs, the AnimationTimer, and the basis for the Entity class (ex. position, image and boundaries).
The system for resizing the game window was taken from here and modified to work properly, as it was originally broken.
The delay and repeating tasks used in battles were learned from here
Fixing concurrency issues with ArrayLists was learned from here
All resources and any other code were created by Daniel Voznyy or Enfei Zhang