Skip to content
Snippets Groups Projects
Commit 07109f5b authored by bosskkev's avatar bosskkev
Browse files

Détection des collisions entre la balle et les raquettes

parent 7e034174
No related branches found
No related tags found
No related merge requests found
Pipeline #23112 failed
...@@ -40,7 +40,7 @@ public class Kernel { ...@@ -40,7 +40,7 @@ public class Kernel {
engines.add(physicEngine); engines.add(physicEngine);
pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap; pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap;
this.start(); this.update();
this.setKeysListeners((JPanel) this.graphicEngine.getContentPane()); this.setKeysListeners((JPanel) this.graphicEngine.getContentPane());
} }
...@@ -62,7 +62,7 @@ public class Kernel { ...@@ -62,7 +62,7 @@ public class Kernel {
* One step of the game. Update all objects positions and repaint the grid. * One step of the game. Update all objects positions and repaint the grid.
*/ */
public void update() { public void update() {
System.out.println("One step"); //System.out.println("One step");
// Updating all objects positions // Updating all objects positions
for (Engine engine: engines for (Engine engine: engines
......
...@@ -8,6 +8,8 @@ import pong.PongObject; ...@@ -8,6 +8,8 @@ import pong.PongObject;
import java.util.HashMap; import java.util.HashMap;
public class PhysicEngine implements Engine { public class PhysicEngine implements Engine {
int i = 0;
public HashMap<PongObject, Entity> pongObjectEntityHashMap = new HashMap<>(); public HashMap<PongObject, Entity> pongObjectEntityHashMap = new HashMap<>();
private HashMap<Coordinates2D, PongObject> positions = new HashMap<>(); private HashMap<Coordinates2D, PongObject> positions = new HashMap<>();
...@@ -26,14 +28,34 @@ public class PhysicEngine implements Engine { ...@@ -26,14 +28,34 @@ public class PhysicEngine implements Engine {
@Override @Override
public void update(){ public void update(){
for (PongObject pongObject: Kernel.gameObjects) { for (PongObject pongObject: Kernel.gameObjects) {
Coordinates2D previousPosition = pongObjectEntityHashMap.get(pongObject).getPosition();
pongObjectEntityHashMap.get(pongObject).updatePosition();// Updating of the associated movable position 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++;
System.out.println("Collision " + i);
pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition);
pongObjectEntityHashMap.get(pongObject).getSpeed().mul(-1);
pongObjectEntityHashMap.get(pongObject).updatePosition();
}
}
}
}
//checkCollision(); //checkCollision();
pongObject.setPosition(pongObjectEntityHashMap.get(pongObject).getPosition()); // Updating of the pong object position pongObject.setPosition(pongObjectEntityHashMap.get(pongObject).getPosition()); // Updating of the pong object position
} }
} }
public void checkCollision(Entity firstObject, Entity secondObject){ public boolean checkCollision(Entity firstObject, Entity secondObject){
//TODO: check collision between two objects Coordinates2D pos1 = firstObject.getPosition();
Coordinates2D pos2 = secondObject.getPosition();
return pos1.getX() < pos2.getX() + secondObject.getWidth() &&
pos1.getX() + firstObject.getWidth() > pos2.getX() &&
pos1.getY() < pos2.getY() + secondObject.getHeight() &&
firstObject.getHeight() + pos1.getY() > pos2.getY();
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment