ChooserGUI_Addition_Guide - UQdeco2800/2021-ext-studio-2 GitHub Wiki
Guide
The following guide deals with adding background selection functionality for a particular screen.
Prerequisites: Produce two or more background music files for the screen in question. Lets assume that two music files have been produced for the AchievementsScreen
. These are placed by the designers in sounds/customBgm
folder as can be seen in the codebase. The files are named: bgmAchievements1.mp3
and bgmAchievements2.mp3
.
Step 1: Create an entry in JSON config.
Location of backgroundMusic.json
config: Location
Add an entry in the JSON config like so: A mapping of screen name Achievements
and track name paths. Note that the files should only be placed in sounds/customBgm
folder, so that the track name can be rendered properly since the said path is replaced with an empty string.
{
"music": {
"class": "java.util.LinkedHashMap",
// ...
"Achievements": [
"sounds/customBgm/bgmAchievements1.mp3",
"sounds/customBgm/bgmAchievements2.mp3"
],
// ...
}
}
Screen
's class, attach the background music components
Step 2: In the Prerequisies: The AchievementsScreen
has been fully implemented and is awaiting the addition of background music.
The components that have to be attached to each screen's lifecycle are:
screenEntity.addComponent(new BackgroundSelectionComponent("Achievements", "br"))
.addComponent(new BackgroundSoundComponent(BackgroundMusic.getSelectedMusic("Achievements"), 0.5f))
To the BackgroundSoundComponent
, volume
and looping
props can be passed as well.
Note that the screen name Achievements
maps to the Achievements
key in the JSON config in Step 1. Passing the property br
to
the BackgroundSelectionComponent
positions it in the bottom right side of the screen. Similarly, tr
, tl
and bl
props can be passed.
More information about this component can be found here.
Note: Do not forget to dispose the entity in the dispose function, otherwise the sound keeps playing when the user exists the screen.