-
Notifications
You must be signed in to change notification settings - Fork 2
Game Screens
The game contains several screen which which each implement libgdx's ScreenAdapter interface. Screen are responsible for initiating important game services, loading screen resources, drawing the background and UI, rendering the entities, handling input, etc.
Only one screen is shown at a time and GDXGame.java
contains functionality for transitioning between screens. Screen transitions are triggered by the current screen.
Within the base game, there are 3 screens: Main Menu Screen, Main Game Screen, and Settings Screen. The Main Menu Screen is the starting screen.
Screens can also be split into different Game Areas which can be used to create different levels and areas. Read more here!
Logo was designed and developed using canva. We decided to go for red theme since we thought it aligned with the title 'beastly'. We browsed through canva and tried different designs until we found we liked and decided on keeping it.
- Large game logo covering half of screen
- Horizontal row of buttons at bottom of screen
- Large visible buttons
Screenshot taken from Stardew Valley
Button changes to a red color when hovered over
The images of food and customers have been taken and generated at random. They spin and move around the screen at random positions. This is achieved by using the Image class to render the images and adding actions to it. It enables us to rotate specified degrees and also to move it from one point to another. The random position and movement is achieved by using a random generating function. For despawning of the objects, we setup a timer that removes any object that has completed its movement.
Create a new screen class, e.g. NewScreen.
public class NewScreen extends ScreenAdapter {
...
}
Then, register the new screen in GDXGame.java
by adding NEW_SCREEN
to ScreenType
and modifying newScreen
:
private Screen newScreen(ScreenType screenType) {
switch (screenType) {
...
case NEW_SCREEN:
return new NewScreen(this);
...
}
}
public enum ScreenType {
MAIN_MENU, MAIN_GAME, SETTINGS, NEW_SCREEN
}
private void switchScreen(GdxGame game, ScreenType screenType) {
game.setScreen(screenType);
}
Below is a UML diagram for MainMenuDisplay. It oulines the functions being used along with the classes it uses. This provides a detailled summary of how we were able to create the main menu screen specifically the spawning of the items in the background.
Inventory System
Scoring System
Food Recipes
Level System
Player Actions
Ordering System
Stations
Items
Map Design
Customers
Pause Menu
Upgrades
End of Day Display
Day Night Cycle
Moral System
Debug Terminal
Game Interactions Tutorial
Backstory Cutscenes
Entities and Components
Input Handling
Game Screens and Areas
Fire Extinguisher Handler Component
MainGameActions Create Docket Triggers
Main Game Order Button Display
BackstoryCutsceneDisplay Test Plan
Test Plan for MainGameOrderTicketDisplay
Test Plan for MainGameOrderBtnDisplay
Test Plan for DocketLineDisplay
Test plan for RandomComboService
Test plan for SpeedBoostUpgrade
Test plan for DancePartyUpgrade