-
Notifications
You must be signed in to change notification settings - Fork 1
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();
}
}
A UML Diagram was created to show how import the UIComponent class is for all of the display screens:
Testing Plans
Team 1
Team 2
Team 3
Team 4
Team 5
Team 1
Team 2
Team 3
Team 4
Team 5
User Testing
Sprint 1 - Game Audio
Sprint 1 - Character Design
Sprint 1 - Menu Assets
Sprint 1 - Map Design
Sprint 1 - Void
Sprint 2 - Game Audio
Sprint 2 - Character Design
Sprint 2 - Menu Assets
Sprint 2 - Interactable Design Animation
Sprint 2 - Levels 1 & 4, and Level Editor
Sprint 2 - Proposed Level 2 & 3 Designs
Sprint 2 - Current Game State
Sprint 3 - Menu Assets
Sprint 3 - Map Design
Sprint 3 - Score Display
Sprint 3 - Player Death and Spawn Animations
Sprint 3 - Pick Ups and Pause Screen
Sprint 4 - Gameplay
Sprint 4 - Game UI and Animation
Sprint 4 - Level Background and Music
Sprint 4 - Game User Testing
Sprint 4 - Final Game State Testing
Entities and Components
Status Components
Event System
Player Animations Implementation
Development Resources
Entities and Components
Level Editor (Saving and Loading
Multiple Levels)