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

Merge remote-tracking branch 'origin/master'

parents 1d084dea 7d3533fc
No related branches found
No related tags found
No related merge requests found
Pipeline #23887 failed
...@@ -10,6 +10,7 @@ import pong.PongObject; ...@@ -10,6 +10,7 @@ import pong.PongObject;
import pong.PongRacket; import pong.PongRacket;
import javax.swing.*; import javax.swing.*;
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;
...@@ -41,7 +42,7 @@ public class Kernel { ...@@ -41,7 +42,7 @@ public class Kernel {
pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap; pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap;
this.update(); this.update();
this.setKeysListeners((JPanel) this.graphicEngine.getContentPane()); this.setKeysAndKeyReleasedListeners((JPanel) this.graphicEngine.getContentPane());
} }
/** /**
...@@ -81,34 +82,92 @@ public class Kernel { ...@@ -81,34 +82,92 @@ public class Kernel {
/** /**
* Listen to keyboard events. * Listen to keyboard events.
*/ */
public void setKeysListeners(JPanel mainPanel) { public void setKeysAndKeyReleasedListeners(JPanel mainPanel) {
mainPanel.addKeyListener(new java.awt.event.KeyAdapter() { InputMap inputMap = mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
public void keyPressed(java.awt.event.KeyEvent evt) { ActionMap actionMap = mainPanel.getActionMap();
switch (evt.getKeyCode()) {
case java.awt.event.KeyEvent.VK_UP -> { // Définir les actions pour les touches de pression
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, -3)); } Action upAction = new AbstractAction() {
case java.awt.event.KeyEvent.VK_DOWN -> { @Override
pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 3)); public void actionPerformed(ActionEvent e) {
physicEngine.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, -3)); }
case java.awt.event.KeyEvent.VK_S -> { Action downAction = new AbstractAction() {
pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 3)); @Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 3));
} }
};
Action zAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, -3));
} }
};
Action sAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 3));
} }
};
// Mapper les touches de pression aux actions
inputMap.put(KeyStroke.getKeyStroke("UP"), "upAction");
inputMap.put(KeyStroke.getKeyStroke("DOWN"), "downAction");
inputMap.put(KeyStroke.getKeyStroke("pressed Z"), "zAction");
inputMap.put(KeyStroke.getKeyStroke("pressed S"), "sAction");
// Mapper les actions aux méthodes correspondantes
actionMap.put("upAction", upAction);
actionMap.put("downAction", downAction);
actionMap.put("zAction", zAction);
actionMap.put("sAction", sAction);
public void keyReleased(java.awt.event.KeyEvent evt) { // Définir les actions pour les touches de relâchement
switch (evt.getKeyCode()) { Action upReleaseAction = new AbstractAction() {
case java.awt.event.KeyEvent.VK_UP, java.awt.event.KeyEvent.VK_DOWN -> { @Override
pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 0)); public void actionPerformed(ActionEvent e) {
physicEngine.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));
Action downReleaseAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(0)).setSpeed(new Coordinates2D(0, 0));
} }
};
Action zReleaseAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 0));
} }
};
Action sReleaseAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
physicEngine.pongObjectEntityHashMap.get(gameObjects.get(1)).setSpeed(new Coordinates2D(0, 0));
} }
}); };
// Mapper les touches de relâchement aux actions
inputMap.put(KeyStroke.getKeyStroke("released UP"), "upReleaseAction");
inputMap.put(KeyStroke.getKeyStroke("released DOWN"), "downReleaseAction");
inputMap.put(KeyStroke.getKeyStroke("released Z"), "zReleaseAction");
inputMap.put(KeyStroke.getKeyStroke("released S"), "sReleaseAction");
// Mapper les actions aux méthodes correspondantes pour le relâchement
actionMap.put("upReleaseAction", upReleaseAction);
actionMap.put("downReleaseAction", downReleaseAction);
actionMap.put("zReleaseAction", zReleaseAction);
actionMap.put("sReleaseAction", sReleaseAction);
mainPanel.setFocusable(true); mainPanel.setFocusable(true);
} }
......
...@@ -38,15 +38,15 @@ public class PongApp { ...@@ -38,15 +38,15 @@ public class PongApp {
String son = "src/main/resources/Sound/minecraft_butdrill.wav"; String son = "src/main/resources/Sound/minecraft_butdrill.wav";
Sound.playMusic(son); Sound.playMusic(son);
PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette.png", new Coordinates2D(widthDiff + 5, 100), 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);
PongRacket rightRacket = new PongRacket("Right racket", "src/main/resources/pong/raquette.png", new Coordinates2D(rectWidth + widthDiff - 5 - racketWidth, 100), racketWidth, racketHeight); PongRacket rightRacket = new PongRacket("Right racket", "src/main/resources/pong/raquette.png", new Coordinates2D(rectWidth + widthDiff - 5 - racketWidth, height/2 - racketHeight/2), racketWidth, racketHeight);
components.add(rightRacket); components.add(rightRacket);
// TODO: Add rackets // TODO: Add rackets
//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/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); //PongBall pongBall = new PongBall("Ball", "src/main/resources/sprint2_demo/asteroid.png", new Coordinates2D(width/2, height/2), ballWidth, ballWidth);
components.add(pongBall); components.add(pongBall);
Kernel kernel = new Kernel("Pong", width, height, components); Kernel kernel = new Kernel("Pong", width, height, components);
......
...@@ -45,7 +45,7 @@ public class Grid extends JFrame { ...@@ -45,7 +45,7 @@ public class Grid extends JFrame {
try { try {
kernel.start(); // Start the kernel kernel.start(); // Start the kernel
kernel.setKeysListeners(playerPanel); // Set keys listeners kernel.setKeysAndKeyReleasedListeners(playerPanel); // Set keys listeners
revalidate(); revalidate();
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment