Skip to content
Snippets Groups Projects
Commit 8cd51e12 authored by AUGIER Yoann's avatar AUGIER Yoann
Browse files

Correction du SoundEngine

parent 9afbbaf8
Branches
No related tags found
No related merge requests found
Pipeline #23900 failed
...@@ -3,24 +3,24 @@ package engine; ...@@ -3,24 +3,24 @@ package engine;
import engine.graphic.GraphicEngine; import engine.graphic.GraphicEngine;
import engine.physic.Coordinates2D; import engine.physic.Coordinates2D;
import engine.physic.Entity; import engine.physic.Entity;
import engine.physic.Movable; import engine.sound.SoundEngine;
import engine.physic.PhysicEngine; import engine.physic.PhysicEngine;
import pong.PongApp;
import pong.PongObject; import pong.PongObject;
import pong.PongRacket;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Random;
public class Kernel { public class Kernel {
ArrayList<Engine> engines = new ArrayList<Engine>(); ArrayList<Engine> engines = new ArrayList<Engine>();
PhysicEngine physicEngine; PhysicEngine physicEngine;
GraphicEngine graphicEngine; GraphicEngine graphicEngine;
SoundEngine soundEngine =new SoundEngine();
public static boolean isCollision = false;
//public HashMap<PongObject, ImageComponent> pongObjectImageComponentHashMap = new HashMap<>(); //public HashMap<PongObject, ImageComponent> pongObjectImageComponentHashMap = new HashMap<>();
...@@ -39,10 +39,12 @@ public class Kernel { ...@@ -39,10 +39,12 @@ public class Kernel {
engines.add(this.graphicEngine);// engines.add(this.graphicEngine);//
this.physicEngine = new PhysicEngine(); this.physicEngine = new PhysicEngine();
engines.add(physicEngine); engines.add(physicEngine);
engines.add(soundEngine);
pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap; pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap;
this.update(); this.update();
this.setKeysAndKeyReleasedListeners((JPanel) this.graphicEngine.getContentPane()); this.setKeysAndKeyReleasedListeners((JPanel) this.graphicEngine.getContentPane());
soundEngine = new SoundEngine();
} }
/** /**
...@@ -74,9 +76,7 @@ public class Kernel { ...@@ -74,9 +76,7 @@ public class Kernel {
) { ) {
engine.update(); engine.update();
} }
// Repainting the grid
graphicEngine.repaint();
graphicEngine.revalidate();
} }
/** /**
......
...@@ -2,6 +2,7 @@ package engine.graphic; ...@@ -2,6 +2,7 @@ package engine.graphic;
import engine.Engine; import engine.Engine;
import engine.Kernel; import engine.Kernel;
import engine.physic.Coordinates2D;
import pong.PongApp; import pong.PongApp;
import pong.PongObject; import pong.PongObject;
...@@ -48,6 +49,7 @@ public class GraphicEngine extends JFrame implements Engine { ...@@ -48,6 +49,7 @@ public class GraphicEngine extends JFrame implements Engine {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(670, 100), PongApp.score1, PongApp.score2));
repaint(); repaint();
revalidate(); revalidate();
} }
...@@ -63,5 +65,8 @@ public class GraphicEngine extends JFrame implements Engine { ...@@ -63,5 +65,8 @@ public class GraphicEngine extends JFrame implements Engine {
this.getContentPane().add(new RectangleComponent(100, 100, PongApp.rectWidth, PongApp.rectHeight)); this.getContentPane().add(new RectangleComponent(100, 100, PongApp.rectWidth, PongApp.rectHeight));
} }
public void drawScore(int score1, int score2){
this.getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(500, 100), score1, score2));
}
} }
package engine.graphic;
import engine.physic.Coordinates2D;
import pong.PongApp;
import javax.swing.*;
import java.awt.*;
public class ScoreComponent extends JComponent {
private int score1;
private int score2;
Coordinates2D position1;
Coordinates2D position2;
public ScoreComponent(Coordinates2D position1, Coordinates2D position2, int score1, int score2) {
this.score1 = score1;
this.score2 = score2;
this.position1 = position1;
this.position2 = position2;
this.setSize(PongApp.width, PongApp.height);
this.setVisible(true);
this.setLayout(null);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.setFont(new Font("Anton", Font.PLAIN, 50));
g.drawString(String.valueOf(score1), position1.getX(), position1.getY());
g.drawString(String.valueOf(score2), position2.getX(), position2.getY());
}
}
...@@ -2,7 +2,6 @@ package engine.physic; ...@@ -2,7 +2,6 @@ package engine.physic;
import engine.Engine; import engine.Engine;
import engine.Kernel; import engine.Kernel;
import engine.Sound;
import pong.PongObject; import pong.PongObject;
import java.util.HashMap; import java.util.HashMap;
...@@ -37,8 +36,9 @@ public class PhysicEngine implements Engine { ...@@ -37,8 +36,9 @@ public class PhysicEngine implements Engine {
if(!po2.getName().equals("Ball")){ if(!po2.getName().equals("Ball")){
if(checkCollision(pongObjectEntityHashMap.get(pongObject), pongObjectEntityHashMap.get(po2))){ if(checkCollision(pongObjectEntityHashMap.get(pongObject), pongObjectEntityHashMap.get(po2))){
i++; i++;
String collisionPath = "src/main/resources/Sound/collision.wav"; //String collisionPath = "src/main/resources/Sound/collision.wav";
Sound.playMusic(collisionPath); //Sound.playMusic(collisionPath);
Kernel.isCollision = true;
System.out.println("Collision " + i); System.out.println("Collision " + i);
pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition); pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition);
if(i % 2 == 0){ if(i % 2 == 0){
......
package engine; package engine.sound;
import engine.Engine;
import engine.Kernel;
import java.io.File; import java.io.File;
import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem; import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip; import javax.sound.sampled.Clip;
public class Sound { public class SoundEngine implements Engine {
public SoundEngine(){}
public static void playMusic(String location){ public static void playMusic(String location){
try { try {
File musicPath = new File(location); File musicPath = new File(location);
...@@ -23,5 +28,19 @@ public class Sound { ...@@ -23,5 +28,19 @@ public class Sound {
System.out.println(e); System.out.println(e);
} }
} }
@Override
public void update() {
if (Kernel.isCollision){
String collisionPath = "src/main/resources/Sound/collision.wav";
SoundEngine.playMusic(collisionPath);
Kernel.isCollision = false;
}
}
@Override
public void restart() {
}
} }
package pong; package pong;
import engine.Sound;
import engine.physic.Coordinates2D; import engine.physic.Coordinates2D;
import engine.Kernel; import engine.Kernel;
...@@ -36,8 +35,6 @@ public class PongApp { ...@@ -36,8 +35,6 @@ public class PongApp {
int ballWidth = 32; int ballWidth = 32;
String son = "src/main/resources/Sound/minecraft_butdrill.wav";
Sound.playMusic(son);
PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette.png", new Coordinates2D(widthDiff + 5, height/2 - racketHeight/2), racketWidth, racketHeight); PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette.png", new Coordinates2D(widthDiff + 5, height/2 - racketHeight/2), racketWidth, racketHeight);
components.add(leftRacket); components.add(leftRacket);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment