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

Fix: cancellation of Bomb Sound

parent 2cc1c86d
No related branches found
No related tags found
5 merge requests!74V1,!73Initial commit,!71Merge DataBase into Development,!62Sound,!60Merge: Sound
......@@ -5,6 +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.SoundEffects;
import de.hdm_stuttgart.battlearena.Model.Sound.TestThread;
import javafx.geometry.BoundingBox;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
......@@ -79,17 +80,22 @@ public class Bomb implements IEntity {
}
public void renderEntity(GraphicsContext graphicsContext) {
graphicsContext.drawImage(frames[frameIndex], posX, posY, 48, 48);
updateAnimation();
}
private void updateAnimation() { //Easily add more frames
sfx.playSoundEffectOnce(SFX.BOMB);
frameCounter++;
if (frameCounter > 17) {
if (frameIndex == 0) {
//sfx.playSoundEffectOnce(SFX.BOMB);
TestThread t = new TestThread();
t.startSound(SFX.BOMB);
frameIndex = 1;
//PLayer.spawnExplosion();
} else if (frameIndex == 1) {
......
......@@ -6,7 +6,7 @@ public enum SFX {
COIN_COLLECTED("src/main/resources/sound/sfx/otSFX/powerups/drop-coins.mp3"),
//Bomb
BOMB("src/main/resources/sound/sfx/otSFX/bomb/BombSound.wav"),
BOMB("src/main/resources/sound/sfx/otSFX/bomb/Bomb2.wav"),
//Attack Sounds
......
......@@ -6,6 +6,8 @@ import de.hdm_stuttgart.battlearena.Model.Entity.IEntity;
import de.hdm_stuttgart.battlearena.Model.Map.ITile;
import de.hdm_stuttgart.battlearena.Model.Map.TileManager;
import javafx.scene.media.AudioClip;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
......@@ -41,14 +43,13 @@ public class SoundEffects {
List<Path> sfxPaths = fileManager.getFilePathsFromResources(path);
String randomPath = fileManager.getRandomFilePath(sfxPaths);
String resource = fileManager.convertPathToResourcePath(randomPath);
///Thread sfxLoop = new Thread
service.execute(() -> {
Thread sfxLoop = new Thread(() -> {
AudioClip effect = new AudioClip(getClass().getResource(resource).toString());
effect.setVolume((double) persistence.getSettings().getSfxVolume() /100);
effect.play();
});
//sfxLoop.setDaemon(true);
//sfxLoop.start();
sfxLoop.setDaemon(true);
sfxLoop.start();
sfxPaths.clear();
}
}
......@@ -58,13 +59,14 @@ public class SoundEffects {
String path = soundEffect.getPath();
log.info(path);
String resource = path.substring(18); // Begins at Ressource Folder
service.execute(()->{
AudioClip audioClip = new AudioClip(getClass().getResource(resource).toExternalForm());
audioClip.setVolume((double) persistence.getSettings().getSfxVolume()/100);
audioClip.play();
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();
sfx.setDaemon(true);
sfx.start();
soundEffectPlayedTest = true;
}
......
package de.hdm_stuttgart.battlearena.Model.Sound;
import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Persistence;
import javafx.scene.media.AudioClip;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class TestThread extends Thread {
private static final Logger log = LogManager.getLogger(TestThread.class);
private SFX sfx;
private Persistence persistence = Persistence.getInstance();
@Override
public void run() {
String path = sfx.getPath();
log.info(path);
String resource = path.substring(18); // Begins at Ressource Folder
AudioClip audioClip = new AudioClip(getClass().getResource(resource).toExternalForm());
audioClip.setVolume((double) persistence.getSettings().getSfxVolume() / 100);
audioClip.play();
log.info("bla");
}
public void startSound(SFX sfx) {
this.sfx = sfx;
start();
}
}
{
"sfxVolume": 16,
"musicVolume": 16
"sfxVolume": 29,
"musicVolume": 0
}
\ No newline at end of file
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