mirror of
https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-02.git
synced 2024-11-25 12:49:45 +01:00
added effect sound slider
This commit is contained in:
parent
1b2a7d73b5
commit
9a7f75b76b
@ -21,9 +21,11 @@ def sliderColor = color(0.6, 0.8, 0.8, 1)
|
||||
def sliderBgColor = color(0.5, 0.75, 0.75, 1)
|
||||
def gradientColor = color(0.5, 0.75, 0.85, 0.5)
|
||||
def tabbuttonEnabledColor = color(0.4, 0.45, 0.5, 1)
|
||||
def solidWhiteBackground = new QuadBackgroundComponent(color(1, 1, 1, 1)) // Solid white
|
||||
def greyBackground = color(0.8, 0.8, 0.8, 1) // Grey background color
|
||||
def redBorderColor = color(1, 0, 0, 1) // Red border color
|
||||
def solidWhiteBackground = new QuadBackgroundComponent(new ColorRGBA(1, 1, 1, 1))
|
||||
def greyBackground = new QuadBackgroundComponent(new ColorRGBA(0.1f, 0.1f, 0.1f, 1.0f));
|
||||
def lightGreyBackground = new QuadBackgroundComponent(new ColorRGBA(0.4f, 0.4f, 0.4f, 1.0f));
|
||||
def lightGrey = color(0.6, 0.6, 0.6, 1.0)
|
||||
|
||||
|
||||
|
||||
|
||||
@ -246,7 +248,12 @@ selector("tab.button", "pp") {
|
||||
buttonCommands = stdButtonCommands
|
||||
}
|
||||
selector("settings-title", "pp") {
|
||||
fontSize = 48 // Set font size
|
||||
def outerBackground = new QuadBackgroundComponent(color(1, 0.5, 0, 1)) // Grey inner border
|
||||
def innerBackground = new QuadBackgroundComponent(buttonBgColor) // White outer border background
|
||||
|
||||
background = outerBackground
|
||||
fontSize = 40
|
||||
insets = new Insets3f(3, 3, 3, 3)
|
||||
textHAlignment = HAlignment.Center
|
||||
textVAlignment = VAlignment.Center
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public class GameMusic extends AbstractAppState{
|
||||
return PREFERENCES.getBoolean(ENABLED_PREF, true);
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Checks if sound is enabled in the preferences.
|
||||
*
|
||||
* @return float to which the volume is set
|
||||
|
@ -30,6 +30,7 @@ public class GameSound extends AbstractAppState implements GameEventListener {
|
||||
private static final Logger LOGGER = System.getLogger(GameSound.class.getName());
|
||||
private static final Preferences PREFERENCES = getPreferences(GameSound.class);
|
||||
private static final String ENABLED_PREF = "enabled"; //NON-NLS
|
||||
private static final String VOLUME_PREF = "volume"; //NON-NLS
|
||||
|
||||
private AudioNode passStartSound;
|
||||
private AudioNode eventCardSound;
|
||||
@ -59,6 +60,15 @@ public class GameSound extends AbstractAppState implements GameEventListener {
|
||||
setEnabled(!isEnabled());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if sound is enabled in the preferences.
|
||||
*
|
||||
* @return float to which the volume is set
|
||||
*/
|
||||
public static float volumeInPreferences() {
|
||||
return PREFERENCES.getFloat(VOLUME_PREF, 0.5f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the enabled state of this AppState.
|
||||
* Overrides {@link com.jme3.app.state.AbstractAppState#setEnabled(boolean)}
|
||||
@ -92,7 +102,7 @@ public class GameSound extends AbstractAppState implements GameEventListener {
|
||||
tradeAcceptedSound = loadSound(app, "Sound/Effects/tradeAccepted.ogg");
|
||||
tradeRejectedSound = loadSound(app, "Sound/Effects/tradeRejected.ogg");
|
||||
winnerSound = loadSound(app, "Sound/Effects/winner.ogg");
|
||||
looserSound = loadSound(app, "Sound/Effects/looser.ogg");
|
||||
looserSound = loadSound(app, "Sound/Effects/loser.ogg");
|
||||
buttonSound = loadSound(app, "Sound/Effects/button.ogg");
|
||||
}
|
||||
|
||||
@ -193,6 +203,25 @@ public class GameSound extends AbstractAppState implements GameEventListener {
|
||||
if (isEnabled() && buttonSound != null)
|
||||
buttonSound.playInstance();
|
||||
}
|
||||
/**
|
||||
* Sets the volume of the sounds
|
||||
* @param vol the volume to which the sounds should be set
|
||||
*/
|
||||
public void setVolume(float vol){
|
||||
passStartSound.setVolume(vol);
|
||||
eventCardSound.setVolume(vol);
|
||||
gulagSound.setVolume(vol);
|
||||
diceRollSound.setVolume(vol);
|
||||
moneyCollectSound.setVolume(vol);
|
||||
moneyLostSound.setVolume(vol);
|
||||
tradeAcceptedSound.setVolume(vol);
|
||||
tradeRejectedSound.setVolume(vol);
|
||||
winnerSound.setVolume(vol);
|
||||
looserSound.setVolume(vol);
|
||||
buttonSound.setVolume(vol);
|
||||
|
||||
PREFERENCES.putFloat(VOLUME_PREF, vol);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receivedEvent(SoundEvent event) {
|
||||
|
@ -31,7 +31,8 @@ public class SettingsMenu extends Dialog {
|
||||
private static final Preferences PREFERENCES = getPreferences(SettingsMenu.class);
|
||||
private static final String LAST_PATH = "last.file.path";
|
||||
private final MonopolyApp app;
|
||||
private final VolumeSlider slider;
|
||||
private final VolumeSlider musicSlider;
|
||||
private final SoundSlider soundSlider;
|
||||
|
||||
/**
|
||||
* Constructs the Menu dialog for the Battleship application.
|
||||
@ -41,18 +42,22 @@ public class SettingsMenu extends Dialog {
|
||||
public SettingsMenu(MonopolyApp app) {
|
||||
super(app.getDialogManager());
|
||||
this.app = app;
|
||||
slider = new VolumeSlider(app.getStateManager().getState(GameMusic.class));
|
||||
addChild(new Label("Einstellungen", new ElementId("header"))); //NON-NLS
|
||||
musicSlider = new VolumeSlider(app.getStateManager().getState(GameMusic.class));
|
||||
soundSlider = new SoundSlider(app.getStateManager().getState(GameSound.class));
|
||||
addChild(new Label("Einstellungen", new ElementId("settings-title"))); //NON-NLS
|
||||
addChild(new Label("Sound Effekte", new ElementId("label"))); //NON-NLS
|
||||
|
||||
addChild(soundSlider);
|
||||
|
||||
addChild(new Checkbox("Soundeffekte an / aus", new StateCheckboxModel(app, GameSound.class)));
|
||||
|
||||
addChild(new Label("Hintergrund Musik", new ElementId("label"))); //NON-NLS
|
||||
addChild(new Checkbox("Musik an / aus", new StateCheckboxModel(app, GameMusic.class)));
|
||||
|
||||
addChild(slider);
|
||||
addChild(musicSlider);
|
||||
|
||||
addChild(new Button("Zurück zum Spiel")).addClickCommands(s -> ifTopDialog(this::close));
|
||||
addChild(new Button("Beenden")).addClickCommands(s -> ifTopDialog(app::closeApp));
|
||||
addChild(new Button("Zurück zum Spiel", new ElementId("button"))).addClickCommands(s -> ifTopDialog(this::close));
|
||||
addChild(new Button("Beenden", new ElementId("button"))).addClickCommands(s -> ifTopDialog(app::closeApp));
|
||||
|
||||
update();
|
||||
}
|
||||
@ -66,7 +71,8 @@ public class SettingsMenu extends Dialog {
|
||||
|
||||
@Override
|
||||
public void update(float delta) {
|
||||
slider.update();
|
||||
musicSlider.update();
|
||||
soundSlider.update();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,32 @@
|
||||
package pp.monopoly.client.gui;
|
||||
|
||||
import com.simsilica.lemur.Slider;
|
||||
import pp.monopoly.client.GameMusic;
|
||||
import pp.monopoly.client.GameSound;
|
||||
|
||||
public class SoundSlider extends Slider {
|
||||
|
||||
private final pp.monopoly.client.GameSound sound;
|
||||
private double vol;
|
||||
|
||||
/**
|
||||
* Constructs the Volume Slider for the Menu dialog
|
||||
* @param sound the Effects sound instance
|
||||
*/
|
||||
public SoundSlider(GameSound sound) {
|
||||
super();
|
||||
this.sound = sound;
|
||||
vol = GameSound.volumeInPreferences();
|
||||
getModel().setPercent(vol);
|
||||
}
|
||||
|
||||
/**
|
||||
* when triggered it updates the volume to the value set with the slider
|
||||
*/
|
||||
public void update() {
|
||||
if (vol != getModel().getPercent()) {
|
||||
vol = getModel().getPercent();
|
||||
sound.setVolume( (float) vol);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user