-
Notifications
You must be signed in to change notification settings - Fork 0
Anastasia Laczko edited this page Apr 23, 2021
·
22 revisions
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 GameAreaDisplay extends UIComponent {
private Label title;
Create actors and add them to the stage in create()
:
@Override
public void create() {
super.create();
addActors();
}
private void addActors() {
title = new Label("Forest Area", skin);
title.setFontScale(2f);
stage.addActor(title);
}
Any dynamic properties such as an actor's position should be set in draw()
:
@Override
public void draw(SpriteBatch batch) {
int screenHeight = Gdx.graphics.getHeight();
float offsetX = 10f;
float offsetY = 30f;
title.setPosition(offsetX, screenHeight - offsetY);
}
Remove actors from the stage in dispose()
:
@Override
public void dispose() {
super.dispose();
title.remove();
}
}
The Final Boss
Shop
Inventory
Achievements
Infrastructure
User Interfaces Across All Pages
User Interfaces Buildings
Guidebook
[Resource Management](Resource-Management)