Skip to content
Snippets Groups Projects
Commit bdae4062 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

Fixed #52

parent ec14a62f
No related branches found
No related tags found
1 merge request!56merge Sound into master
Showing
with 47 additions and 30 deletions
File added
File added
......@@ -179,22 +179,22 @@ public class Board
}
bricks.get(row).set(col, new Brick(BrickType.TNT));
destroyBrick(row, col, false);
destroyBrick(row, col, false, false);
break;
case NO_COLLISION:
destroyBrick(row, col, true);
destroyBrick(row, col, true, true);
break;
default:
destroyBrick(row, col, false);
destroyBrick(row, col, false, true);
break;
}
return points;
}
public void destroyBrick(int row, int col, boolean instantDestroy)
public void destroyBrick(int row, int col, boolean instantDestroy, boolean playDestroySound)
{
Brick hittedBrick = bricks.get(row).get(col);
......@@ -214,9 +214,12 @@ public class Board
game.getSoundHandler().play(SoundType.TNT);
}
else
{
if(playDestroySound)
{
game.getSoundHandler().play(SoundType.DESTROY_BRICK);
}
}
if(hittedBrick.getPowerUp() != null)
{
......@@ -253,7 +256,7 @@ public class Board
{
if(k >= 0 && k < WIDTH)
{
destroyBrick(i, k, true);
destroyBrick(i, k, true, true);
}
}
}
......
......@@ -2,12 +2,12 @@ package de.bricked.game.sound;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.HashMap;
import de.bricked.game.Config;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaPlayer.Status;
import kuusisto.tinysound.Sound;
import kuusisto.tinysound.TinySound;
import logger.LogLevel;
import logger.Logger;
......@@ -15,12 +15,19 @@ public class SoundHandler
{
private double volume;
private boolean muted;
private HashMap<SoundType, MediaPlayer> mediaPlayers;
private HashMap<SoundType, Sound> mediaPlayers;
private int tntCounter;
static
{
TinySound.init();
}
public SoundHandler(double volume, boolean muted)
{
this.volume = volume;
this.muted = muted;
this.tntCounter = 0;
mediaPlayers = new HashMap<>();
......@@ -28,16 +35,10 @@ public class SoundHandler
{
try
{
String path = SoundHandler.class.getResource(Config.JAR_SOUND_SAVEDIR + currentType.getFileName() + ".mp3").toURI().toURL().toString();
Media sound = new Media(path);
MediaPlayer mediaPlayer = new MediaPlayer(sound);
mediaPlayer.setVolume(volume);
mediaPlayer.setAutoPlay(false);
mediaPlayer.setOnEndOfMedia(()->{
mediaPlayer.stop();
});
URL path = SoundHandler.class.getResource(Config.JAR_SOUND_SAVEDIR + currentType.getFileName() + ".wav").toURI().toURL();
mediaPlayers.put(currentType, mediaPlayer);
Sound sound = TinySound.loadSound(path);
mediaPlayers.put(currentType, sound);
}
catch(MalformedURLException | URISyntaxException e)
{
......@@ -50,14 +51,19 @@ public class SoundHandler
{
if(volume > 0 && !muted)
{
MediaPlayer player = mediaPlayers.get(soundType);
if(player != null)
Sound player = mediaPlayers.get(soundType);
if(soundType.equals(SoundType.TNT))
{
if(!player.getStatus().equals(Status.PLAYING))
tntCounter++;
}
else
{
player.play();
tntCounter = 0;
}
if(player != null && tntCounter < 2)
{
player.play(volume);
}
}
}
......@@ -81,4 +87,12 @@ public class SoundHandler
{
this.muted = muted;
}
public void stopAll()
{
for(Sound currentSound : mediaPlayers.values())
{
currentSound.stop();
}
}
}
\ No newline at end of file
File deleted
File added
File deleted
File added
File deleted
File added
File deleted
File added
File deleted
File added
File deleted
File added
File deleted
File added
File deleted
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment