diff --git a/src/main/java/engine/Sonor/PongSoundEngine.java b/src/main/java/engine/Sonor/PongSoundEngine.java deleted file mode 100644 index bb8882b6834ef8952076b57f4df5d682c58f0419..0000000000000000000000000000000000000000 --- a/src/main/java/engine/Sonor/PongSoundEngine.java +++ /dev/null @@ -1,54 +0,0 @@ -package engine.Sonor; - - -import javax.sound.sampled.*; -import java.io.File; -import java.io.IOException; - -public class PongSoundEngine { - - private Clip paddleHitClip; - private Clip wallHitClip; - private Clip pointScoredClip; - - public PongSoundEngine() { - try { - // Charger les fichiers audio - paddleHitClip = AudioSystem.getClip(); - AudioInputStream paddleHitStream = AudioSystem.getAudioInputStream(new File("C:\\Users\\pc\\Downloads\\paddle-fan-drum-40347.wav")); - paddleHitClip.open(paddleHitStream); - - wallHitClip = AudioSystem.getClip(); - AudioInputStream wallHitStream = AudioSystem.getAudioInputStream(new File("C:\\Users\\pc\\Downloads\\hitting-the-wall-with-a-stick-100777.wav")); - wallHitClip.open(wallHitStream); - - pointScoredClip = AudioSystem.getClip(); - AudioInputStream pointScoredStream = AudioSystem.getAudioInputStream(new File("C:\\Users\\pc\\Downloads\\epic-hybrid-logo-157092.wav")); - pointScoredClip.open(pointScoredStream); - - } catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) { - e.printStackTrace(); - } - } - - public void playPaddleHitSound() { - playSound(paddleHitClip); - } - - public void playWallHitSound() { - playSound(wallHitClip); - } - - public void playPointScoredSound() { - playSound(pointScoredClip); - } - - private void playSound(Clip clip) { - if (clip.isRunning()) { - clip.stop(); - } - clip.setFramePosition(0); - clip.start(); - } - -} \ No newline at end of file diff --git a/src/main/java/engine/Sound.java b/src/main/java/engine/Sound.java new file mode 100644 index 0000000000000000000000000000000000000000..b71382f2515908225f72dc0e44509902a5120fda --- /dev/null +++ b/src/main/java/engine/Sound.java @@ -0,0 +1,27 @@ +package engine; + +import java.io.File; +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Clip; + +public class Sound { + public static void PLaymusic(String location){ + try { + File musicPath = new File(location); + if (musicPath.exists()) { + AudioInputStream audioInput = AudioSystem.getAudioInputStream(musicPath); + Clip clip = AudioSystem.getClip(); + clip.open(audioInput); + clip.start(); + } + else { + System.out.println(" le fichier n'existe pas"); + } + } + catch (Exception e) { + System.out.println(e); + } + } +} + diff --git a/src/main/java/engine/physic/PhysicEngine.java b/src/main/java/engine/physic/PhysicEngine.java index 657134dcfc23120ecebee94cdccc3abbd401611f..d2f716357f3f4fa3947bcbcae0706ccbe329e7f4 100644 --- a/src/main/java/engine/physic/PhysicEngine.java +++ b/src/main/java/engine/physic/PhysicEngine.java @@ -2,6 +2,7 @@ package engine.physic; import engine.Engine; import engine.Kernel; +import engine.Sound; import pong.PongApp; import pong.PongObject; @@ -32,10 +33,12 @@ public class PhysicEngine implements Engine { pongObjectEntityHashMap.get(pongObject).updatePosition();// Updating of the associated movable position if(pongObject.getName().equals("Ball")){ for (PongObject po2: pongObjectEntityHashMap.keySet() - ) { + ) { if(!po2.getName().equals("Ball")){ if(checkCollision(pongObjectEntityHashMap.get(pongObject), pongObjectEntityHashMap.get(po2))){ i++; + String collisionPath = "src/main/resources/Sound/collision.wav"; + Sound.PLaymusic(collisionPath); System.out.println("Collision " + i); pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition); pongObjectEntityHashMap.get(pongObject).getSpeed().mul(-1); diff --git a/src/main/java/pong/PongApp.java b/src/main/java/pong/PongApp.java index b885c77bf0593ccaf077780d1b2b6500f16c91a3..8a34fb95b19c4fb5773b8a2c1f5ffa32fe893f97 100644 --- a/src/main/java/pong/PongApp.java +++ b/src/main/java/pong/PongApp.java @@ -1,8 +1,9 @@ package pong; +import engine.Sound; import engine.physic.Coordinates2D; import engine.Kernel; -import engine.Sonor.PongSoundEngine; + import java.io.IOException; import java.util.ArrayList; @@ -12,15 +13,14 @@ public class PongApp { public static ArrayList<PongObject> components = new ArrayList<PongObject>(); public static int width = 850; public static int height = 500; - public static PongSoundEngine soundEngine; - public PongApp() throws IOException { - soundEngine = new PongSoundEngine(); + } public static void main(String[] args) throws IOException { - + String son = "src/main/resources/Sound/son.wav"; + Sound.PLaymusic(son); PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette1.png", new Coordinates2D(5, 100), 30, 120); components.add(leftRacket); @@ -39,13 +39,6 @@ public class PongApp { try { kernel.update(); - if (leftRacket.getPosition() == pongBall.getPosition()|| rightRacket.getPosition() == pongBall.getPosition()) { - soundEngine.playPaddleHitSound(); - } else if (pongBall.getHeight() <= 0 || pongBall.getWidth() + pongBall.getWidth() >= width) { - soundEngine.playWallHitSound(); - } else if (pongBall.getHeight() < 0 || pongBall.getWidth() + pongBall.getWidth() > width) { - soundEngine.playPointScoredSound(); - } Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace();