-
Notifications
You must be signed in to change notification settings - Fork 0
polyrain edited this page Aug 1, 2021
·
1 revision
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();
}
}- Player UI
- Popup Menus
- Obstacles
- Boss Enemies
- Progress Tracker
- Checkpoint Design and Functionality
- Score System
- Lives System
- Game Background
- Multiple game-level
- Visual Improvements
- Tutorial Level
- Character Design and Animations
- Character Damage Animations
- Player Animation Functionalities
- Player and Serpent Portal Transition
- Pop-up Menus
- Obstacles
- Lives & Score User Testing
- Buffs & Debuffs
- Buffs & Debuffs redesign
- Obstacle Animation
- Background Design
- Level 2 Background Appearance
- Enemy Monster User Testing
- Level 1 Floor Terrain Testing
- Introduction Screens User Testing
- Character Movement Interviews & User Testing
- Sound user testing
- Level 2 Obstacles and enemy
- Story, Loading, Level 4 and Win Condition Sound Design User Testing
- Giant Bug and Purple Squid animation user testing
- General Gameplay and Tutorial Level User Testing
- Level 4 Terrain User Testing
- Game Outro User Testing