-
Notifications
You must be signed in to change notification settings - Fork 2
There are expected to be several UI displays in the game, e.g. main menu, player stats, level text, pop-up menus, etc. The game engine makes use of libgdx's Scene2D class to render UI elements such as images and text to the screen.
-
Renderer - Creates the stage, a canvas for UI elements (actors):
Renderer
. -
Render Service - Provides global access to the stage:
RenderService
. -
UI Components - Components containing actors to render onto the stage: extend
UIComponent
.
Create a UI entity and add UI Components to it (entities can have multiple UI components as long as there's only one of each type):
Entity UI = new Entity();
UI.addComponent(new GameAreaDisplay("Box Forest"));
The UI component should extend UIComponent
:
public class UIDisplay extends UIComponent {
private Label label;
@Override
public void create() {
super.create();
addActors();
}
Create actors and add them to the stage in create()
. Anything that isn't automatically rendered by the stage should be added to draw()
.
- Example without using libgdx
Table
:
private void addActors() {
label = new Label("Hello World", skin);
label.setFontScale(2f);
stage.addActor(title);
}
@Override
public void draw(SpriteBatch batch) {
// change position in case of window resize
int screenHeight = Gdx.graphics.getHeight();
float offsetX = 10f;
float offsetY = 30f;
label.setPosition(offsetX, screenHeight - offsetY);
}
- Example with libgdx
Table
:
private void addActors() {
// Create table
table = new Table();
table.top().left();
table.setFillParent(true);
table.padTop(30f).padLeft(10f);
// Add an image
label = new Label("Hello World", skin);
label.setFontScale(2f);
table.add(label).pad(5);
stage.addActor(table);
}
@Override
public void draw(SpriteBatch batch) {
// changing position on window resizing is handled by the stage
}
Remove actors from the stage in dispose()
:
@Override
public void dispose() {
super.dispose();
title.remove();
}
}
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