Skip to content
Snippets Groups Projects
Commit 139acf7e authored by Gehrung Jonas's avatar Gehrung Jonas
Browse files

UPDATE: VolumeClass for SoundEffects

parent 5e1e3d58
No related branches found
No related tags found
5 merge requests!74V1,!73Initial commit,!71Merge DataBase into Development,!62Sound,!60Merge: Sound
......@@ -3,7 +3,7 @@ package de.hdm_stuttgart.battlearena.Controller;
import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffectsVolume;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Slider;
......@@ -21,7 +21,7 @@ public class PauseSettingsController implements Initializable {
private int musicVolume, sfxVolume;
Persistence persistence = Persistence.getInstance();
MusicPlayer player = MusicPlayer.getInstance();
SoundEffects sfx = new SoundEffects();
SoundEffectsVolume sfx = new SoundEffectsVolume();
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
......
......@@ -5,7 +5,7 @@ import de.hdm_stuttgart.battlearena.Controller.Utilities.SceneLoader;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.RuntimeInfo;
import de.hdm_stuttgart.battlearena.Model.Sound.MusicPlayer;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffectsVolume;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
......@@ -26,7 +26,7 @@ public class SettingsController implements Initializable {
private int musicVolume, sfxVolume;
Persistence persistence = Persistence.getInstance();
MusicPlayer player = MusicPlayer.getInstance();
SoundEffects sfx = new SoundEffects();
SoundEffectsVolume sfx = new SoundEffectsVolume();
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
......
......@@ -5,7 +5,7 @@ import de.hdm_stuttgart.battlearena.Model.Entity.EntityDirection;
import de.hdm_stuttgart.battlearena.Model.Entity.IEntity;
import de.hdm_stuttgart.battlearena.Model.Sound.SFX;
import de.hdm_stuttgart.battlearena.Model.Sound.SfxOnce;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffectsVolume;
import javafx.geometry.BoundingBox;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
......@@ -27,7 +27,7 @@ public class Bomb implements IEntity {
private BoundingBox boxCollider;
private final ObjectType OBJECT_TYPE = ObjectType.BOMB;
private ObjectStatus OBJECT_STATUS = ObjectStatus.UNUSED;
private SoundEffects sfx = new SoundEffects();
private SoundEffectsVolume sfx = new SoundEffectsVolume();
//private SoundEffects soundEffects;
public Bomb(int posX, int posY, GraphicsContext graphicsContext) {
......
......@@ -9,7 +9,7 @@ import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler;
import de.hdm_stuttgart.battlearena.Model.Map.TileManager;
import de.hdm_stuttgart.battlearena.Model.Sound.SFX;
import de.hdm_stuttgart.battlearena.Model.Sound.SfxOnce;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffectsVolume;
import de.hdm_stuttgart.battlearena.Model.Sound.WalkEffects;
import javafx.geometry.BoundingBox;
import javafx.scene.canvas.GraphicsContext;
......@@ -39,7 +39,7 @@ class Player implements IEntity {
private BoundingBox boxCollider;
private SoundEffects sfx = new SoundEffects();
private SoundEffectsVolume sfx = new SoundEffectsVolume();
private Image directionDownOne,
......
package de.hdm_stuttgart.battlearena.Model.Inputs;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
......
package de.hdm_stuttgart.battlearena.Model.Sound;
import de.hdm_stuttgart.battlearena.Controller.GameSceneController;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SoundEffects {
private static final Logger log = LogManager.getLogger(SoundEffects.class);
private ExecutorService service = Executors.newCachedThreadPool();
private SoundFileManager fileManager = new SoundFileManager();
private Persistence persistence = Persistence.getInstance();
private boolean soundEffectPlayedTest = false;
public void playSoundEffect(GameSceneController gameSceneController) throws IOException, InterruptedException {
}
public void playSoundEffectOnce(SFX soundEffect){
String path = soundEffect.getPath();
log.info(path);
String resource = path.substring(18); // Begins at Ressource Folder
Thread sfx = new Thread(()->{
Media media = new Media(getClass().getResource(resource).toExternalForm());
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setVolume(persistence.getSettings().getSfxVolume());
mediaPlayer.play();
});
sfx.setDaemon(true);
sfx.start();
soundEffectPlayedTest = true;
}
public void setSfxVolume(int volume){
persistence.getSettings().setSfxVolume(volume);
}
public boolean isSoundEffectPlayedTest() {
return soundEffectPlayedTest;
}
}
package de.hdm_stuttgart.battlearena.Model.Sound;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class SoundEffectsVolume {
private static final Logger log = LogManager.getLogger(SoundEffectsVolume.class);
private Persistence persistence = Persistence.getInstance();
public void setSfxVolume(int volume){
persistence.getSettings().setSfxVolume(volume);
}
}
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.DatabaseException;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import de.hdm_stuttgart.battlearena.Model.Sound.SFX;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.SoundEffectsVolume;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class SoundEffectsTest {
private static final Logger log = LogManager.getLogger(SoundEffectsTest.class);
private SoundEffects soundEffects;
private SoundEffectsVolume soundEffects;
private Persistence persistence;
@BeforeEach
void SetUp(){
soundEffects = new SoundEffects();
soundEffects = new SoundEffectsVolume();
persistence = Persistence.getInstance();
try {
persistence.loadSettings();
......@@ -25,8 +22,8 @@ public class SoundEffectsTest {
}
}
@Test
void playSoundEffectOnceTest(){
/*void playSoundEffectOnceTest(){
soundEffects.playSoundEffectOnce(SFX.BOMB);
Assertions.assertTrue(soundEffects.isSoundEffectPlayedTest());
}
......@@ -39,11 +36,8 @@ public class SoundEffectsTest {
Assertions.assertTrue(soundEffects.isSoundEffectPlayedTest());
Assertions.assertEquals(50, persistence.getSettings().getSfxVolume());
});
}
}*/
@Test
void playSoundEffectTest(){
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment