Ajouts de music de fond + modification des boutons (quand on survole le bouton, sa taille grandis progressivement et la couleur change

This commit is contained in:
2024-11-06 18:05:01 +01:00
parent d0c67d5298
commit 2c84169d7f
15 changed files with 407 additions and 11 deletions

View File

@@ -0,0 +1,57 @@
package fr.monkhanny.dorfromantik.utils;
import fr.monkhanny.dorfromantik.enums.Musics;
import fr.monkhanny.dorfromantik.Options;
import javax.sound.sampled.Clip;
import javax.sound.sampled.FloatControl;
public class MusicPlayer {
private static Clip musicClip;
private static boolean isPlaying = false;
public static void loadMusic(Musics music) {
if (music == Musics.MAIN_MENU_MUSIC) {
musicClip = MusicLoader.loadMusic(Musics.MAIN_MENU_MUSIC.getSoundsPath());
if (musicClip != null) {
setVolume(Options.DEFAULT_VOLUME);
}
}
}
public static void play() {
loadMusic(Musics.MAIN_MENU_MUSIC);
if (musicClip != null && !isPlaying) {
musicClip.start();
isPlaying = true;
}
}
public static void pause() {
if (musicClip != null && isPlaying) {
musicClip.stop();
isPlaying = false;
}
}
public static void stop() {
if (musicClip != null) {
musicClip.stop();
musicClip.setFramePosition(0);
isPlaying = false;
}
}
public static void setVolume(int volume) {
if (musicClip != null) {
FloatControl volumeControl = (FloatControl) musicClip.getControl(FloatControl.Type.MASTER_GAIN);
float range = volumeControl.getMaximum() - volumeControl.getMinimum();
float gain = (range * volume / 100f) + volumeControl.getMinimum();
volumeControl.setValue(gain);
}
}
public static boolean isPlaying() {
return isPlaying;
}
}