From 92fffc2d200788c76455acb7ec95e687eb75595d Mon Sep 17 00:00:00 2001
From: bosskkev <kossivikevin29@gmail.com>
Date: Sun, 12 Nov 2023 16:05:19 +0100
Subject: [PATCH] =?UTF-8?q?Modification=20design=20et=20taille=20fen=C3=AA?=
 =?UTF-8?q?tre.=20Rajout=20de=20l'augmentation=20de=20la=20vitesse=20en=20?=
 =?UTF-8?q?fonction=20des=20collisions.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/engine/Kernel.java              |  20 +++++++++---
 src/main/java/engine/Sound.java               |   2 +-
 .../java/engine/graphic/GraphicEngine.java    |  11 +++++++
 .../java/engine/graphic/ImageComponent.java   |   4 ++-
 .../engine/graphic/RectangleComponent.java    |  30 ++++++++++++++++++
 src/main/java/engine/physic/Movable.java      |   6 ++--
 src/main/java/engine/physic/PhysicEngine.java |  10 ++++--
 src/main/java/pong/PongApp.java               |  24 ++++++++++----
 src/main/resources/pong/ball.png              | Bin 1958 -> 20408 bytes
 9 files changed, 90 insertions(+), 17 deletions(-)
 create mode 100644 src/main/java/engine/graphic/RectangleComponent.java

diff --git a/src/main/java/engine/Kernel.java b/src/main/java/engine/Kernel.java
index 1b6333a..0426885 100644
--- a/src/main/java/engine/Kernel.java
+++ b/src/main/java/engine/Kernel.java
@@ -34,6 +34,7 @@ public class Kernel {
 
         this.graphicEngine = new GraphicEngine(); // Will create a new grid and a new kernel
         graphicEngine.init(gameName, width, height); // Will start the kernel and set the keys listeners
+        graphicEngine.drawRect();
 
         engines.add(this.graphicEngine);//
         this.physicEngine = new PhysicEngine();
@@ -82,14 +83,25 @@ public class Kernel {
             public void keyPressed(java.awt.event.KeyEvent evt) {
                 switch (evt.getKeyCode()) {
                     case java.awt.event.KeyEvent.VK_UP -> {
-                        physicEngine.pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, -1));                    }
+                        physicEngine.pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, -3));                    }
                     case java.awt.event.KeyEvent.VK_DOWN -> {
-                        pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 1));
+                        pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 3));
                     }
                     case java.awt.event.KeyEvent.VK_Z -> {
-                        pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, -1));                    }
+                        pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, -3));                    }
                     case java.awt.event.KeyEvent.VK_S -> {
-                        pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 1));
+                        pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 3));
+                    }
+                }
+            }
+
+            public void keyReleased(java.awt.event.KeyEvent evt) {
+                switch (evt.getKeyCode()) {
+                    case java.awt.event.KeyEvent.VK_UP, java.awt.event.KeyEvent.VK_DOWN -> {
+                        pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 0));
+                    }
+                    case java.awt.event.KeyEvent.VK_Z, java.awt.event.KeyEvent.VK_S -> {
+                        pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 0));
                     }
                 }
             }
diff --git a/src/main/java/engine/Sound.java b/src/main/java/engine/Sound.java
index b71382f..c3ddf0b 100644
--- a/src/main/java/engine/Sound.java
+++ b/src/main/java/engine/Sound.java
@@ -6,7 +6,7 @@ import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.Clip;
 
 public class Sound {
-    public static void PLaymusic(String location){
+    public static void playMusic(String location){
         try {
             File musicPath = new File(location);
             if (musicPath.exists()) {
diff --git a/src/main/java/engine/graphic/GraphicEngine.java b/src/main/java/engine/graphic/GraphicEngine.java
index f78e8cb..ae3fed1 100644
--- a/src/main/java/engine/graphic/GraphicEngine.java
+++ b/src/main/java/engine/graphic/GraphicEngine.java
@@ -2,6 +2,7 @@ package engine.graphic;
 
 import engine.Engine;
 import engine.Kernel;
+import pong.PongApp;
 import pong.PongObject;
 
 import javax.swing.*;
@@ -20,12 +21,18 @@ public class GraphicEngine extends JFrame implements Engine {
         this.setMinimumSize(new Dimension(width, height));
         // this.setContentPane(mainPanel);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        this.getContentPane().setBackground(Color.BLACK);
+
+        //this.getContentPane().getGraphics().setColor(Color.BLACK);
+        //this.getContentPane().getGraphics().fillRect(0, 0, width, height);
+        //this.setMenuBar(null);
         this.setLocationRelativeTo(null);
         this.pack();
         this.setResizable(false);
         this.setVisible(true);
         this.setLayout(this.getLayout());
         this.revalidate();
+        this.repaint();
     }
     public void draw(ImageComponent ic) throws IOException {
         getContentPane().add(ic);
@@ -45,5 +52,9 @@ public class GraphicEngine extends JFrame implements Engine {
         revalidate();
     }
 
+    public void drawRect(){
+        this.getContentPane().add(new RectangleComponent(100, 100, PongApp.rectWidth, PongApp.rectHeight));
+    }
+
 
 }
diff --git a/src/main/java/engine/graphic/ImageComponent.java b/src/main/java/engine/graphic/ImageComponent.java
index fd98476..2f57f83 100644
--- a/src/main/java/engine/graphic/ImageComponent.java
+++ b/src/main/java/engine/graphic/ImageComponent.java
@@ -1,6 +1,7 @@
 package engine.graphic;
 
 import engine.physic.Coordinates2D;
+import pong.PongApp;
 
 import javax.swing.*;
 import java.awt.*;
@@ -18,7 +19,7 @@ public class ImageComponent extends JComponent {
         this.image = image;
         this.position = position;
         //this.setBorder(BorderFactory.createLineBorder(Color.black));
-        this.setSize(850, 500);
+        this.setSize(PongApp.width + 20, PongApp.height + 100);
         this.setVisible(true);
         this.setLayout(null);
         //repaint();
@@ -35,6 +36,7 @@ public class ImageComponent extends JComponent {
     @Override
     protected void paintComponent(Graphics g) {
         super.paintComponent(g);
+
         g.drawImage(image, position.getX(), position.getY(), this.width, this.height, this);
         //setOpaque(false);
     }
diff --git a/src/main/java/engine/graphic/RectangleComponent.java b/src/main/java/engine/graphic/RectangleComponent.java
new file mode 100644
index 0000000..5a82310
--- /dev/null
+++ b/src/main/java/engine/graphic/RectangleComponent.java
@@ -0,0 +1,30 @@
+package engine.graphic;
+
+import pong.PongApp;
+
+import javax.swing.*;
+
+public class RectangleComponent extends JComponent {
+    private int width;
+    private int height;
+
+    private int x;
+    private int y;
+
+    public RectangleComponent(int x, int y, int width, int height) {
+        this.width = width;
+        this.height = height;
+        this.x = x;
+        this.y = y;
+        this.setSize(PongApp.width, PongApp.height);
+        this.setVisible(true);
+        this.setLayout(null);
+    }
+
+    @Override
+    protected void paintComponent(java.awt.Graphics g) {
+        super.paintComponent(g);
+        g.setColor(java.awt.Color.WHITE);
+        g.drawRect(this.x, this.y, this.width, this.height);
+    }
+}
diff --git a/src/main/java/engine/physic/Movable.java b/src/main/java/engine/physic/Movable.java
index b62d88a..7e841dd 100644
--- a/src/main/java/engine/physic/Movable.java
+++ b/src/main/java/engine/physic/Movable.java
@@ -60,12 +60,12 @@ public class Movable implements Entity {
     @Override
     public void updatePosition() {
         Coordinates2D newPosition = new Coordinates2D(this.position.getX(), this.position.getY());
-        newPosition.add(this.speed);
+        newPosition.add(this.speed); // Calculating the new position
 
-        if (newPosition.getX() < 0 || newPosition.getX() >= PongApp.width - this.width) {
+        if (newPosition.getX() <= 100 || newPosition.getX() >= PongApp.rectWidth - this.width + 100) {
             this.speed = new Coordinates2D(-speed.getX(), speed.getY());
         }
-        if (newPosition.getY() < 0 || newPosition.getY() >= PongApp.height - this.height -20) { // -20 à cause de la barre verticale de la fenêtre
+        if (newPosition.getY() <= 100 || newPosition.getY() >= PongApp.rectHeight - this.height + 100) { // -20 à cause de la barre verticale de la fenêtre
             this.speed = new Coordinates2D(speed.getX(), -speed.getY());
         }
         this.position.add(this.speed); // Modifying the position (x = x + vx ; y = y + vy)
diff --git a/src/main/java/engine/physic/PhysicEngine.java b/src/main/java/engine/physic/PhysicEngine.java
index 82cfeeb..4d4cec7 100644
--- a/src/main/java/engine/physic/PhysicEngine.java
+++ b/src/main/java/engine/physic/PhysicEngine.java
@@ -3,10 +3,10 @@ package engine.physic;
 import engine.Engine;
 import engine.Kernel;
 import engine.Sound;
-import pong.PongApp;
 import pong.PongObject;
 
 import java.util.HashMap;
+import java.util.Random;
 
 public class PhysicEngine implements Engine {
 
@@ -38,10 +38,16 @@ public class PhysicEngine implements Engine {
                         if(checkCollision(pongObjectEntityHashMap.get(pongObject), pongObjectEntityHashMap.get(po2))){
                             i++;
                             String collisionPath = "src/main/resources/Sound/collision.wav";
-                            Sound.PLaymusic(collisionPath);
+                            Sound.playMusic(collisionPath);
                             System.out.println("Collision " + i);
                             pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition);
+                            if(i % 2 == 0){
+                                pongObjectEntityHashMap.get(pongObject).getSpeed().add(new Coordinates2D(1, 1));
+                            }
+
                             pongObjectEntityHashMap.get(pongObject).getSpeed().mul(-1);
+                            //TODO: implements pong object collision physics
+
                             pongObjectEntityHashMap.get(pongObject).updatePosition();
                         }
                     }
diff --git a/src/main/java/pong/PongApp.java b/src/main/java/pong/PongApp.java
index 5d71dbf..c87c3ab 100644
--- a/src/main/java/pong/PongApp.java
+++ b/src/main/java/pong/PongApp.java
@@ -11,24 +11,36 @@ import java.util.ArrayList;
 public class PongApp {
 
     public static ArrayList<PongObject> components = new ArrayList<PongObject>();
-    public static int width = 850;
-    public static int height = 500;
+    public static int width = 1000;
+    public static int height = 800;
+
+    public static int widthDiff = 100;
+    public static int heightDiff = 100;
+    public static int rectWidth = width - widthDiff*2;
+    public static int rectHeight = height - heightDiff*2;
 
     public PongApp() throws IOException {
 
     }
 
     public static void main(String[] args) throws IOException {
+
+        int racketWidth = 30;
+        int racketHeight = 120;
+
+        int ballWidth = 32;
+
         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);
+        Sound.playMusic(son);
+        PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette.png", new Coordinates2D(widthDiff + 5, 100), racketWidth, racketHeight);
         components.add(leftRacket);
 
-        PongRacket rightRacket = new PongRacket("Right racket", "src/main/resources/pong/raquette2.png", new Coordinates2D(815, 100), 30, 120);
+        PongRacket rightRacket = new PongRacket("Right racket", "src/main/resources/pong/raquette.png", new Coordinates2D(rectWidth + widthDiff - 5 - racketWidth, 100), racketWidth, racketHeight);
         components.add(rightRacket);
 
         // TODO: Add rackets
-        PongBall pongBall = new PongBall("Ball", "src/main/resources/sprint2_demo/asteroid.png", new Coordinates2D(100, 10), 64, 64);
+        //PongBall pongBall = new PongBall("Ball", "src/main/resources/pong/ball.png", new Coordinates2D(width/2, height/2), ballWidth, ballWidth);
+        PongBall pongBall = new PongBall("Ball", "src/main/resources/sprint2_demo/asteroid.png", new Coordinates2D(width/2, height/2), ballWidth, ballWidth);
         components.add(pongBall);
 
         Kernel kernel = new Kernel("Pong", width, height, components);
diff --git a/src/main/resources/pong/ball.png b/src/main/resources/pong/ball.png
index d222eabe97d84d3fd4783abe89ce21e70481c92f..882736824c12bfafb45c18ca0931366171a18741 100644
GIT binary patch
literal 20408
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

literal 1958
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

-- 
GitLab