diff --git a/src/main/java/engine/Kernel.java b/src/main/java/engine/Kernel.java index 14abde27555311a3c24a1e3b914dd13b6c6cfd56..92b6d528a9e52d33f16791045f08128027d26600 100644 --- a/src/main/java/engine/Kernel.java +++ b/src/main/java/engine/Kernel.java @@ -45,6 +45,7 @@ public class Kernel { this.update(); this.setKeysAndKeyReleasedListeners((JPanel) this.graphicEngine.getContentPane()); soundEngine = new SoundEngine(); + start(); } /** @@ -53,7 +54,7 @@ public class Kernel { * @throws IOException */ public void start() throws IOException { - graphicEngine.update(); + graphicEngine.start(); } public void restart() throws IOException { @@ -69,8 +70,6 @@ public class Kernel { * One step of the game. Update all objects positions and repaint the grid. */ public void update() { - //System.out.println("One step"); - // Updating all objects positions for (Engine engine: engines ) { diff --git a/src/main/java/engine/graphic/GraphicEngine.java b/src/main/java/engine/graphic/GraphicEngine.java index 8fef044b2c1960c7c1a2b48aeda836a88c59baa4..5c210bea30051b40abcfa38d0e2d5f7ab54c9fc6 100644 --- a/src/main/java/engine/graphic/GraphicEngine.java +++ b/src/main/java/engine/graphic/GraphicEngine.java @@ -39,26 +39,39 @@ public class GraphicEngine extends JFrame implements Engine { getContentPane().add(ic); } - @Override - public void update(){ + public void start(){ for (PongObject po : Kernel.gameObjects - ) { + ) { try { this.draw(new ImageComponent(po.getImage(), po.getPosition(), po.getWidth(), po.getHeight())); } catch (IOException e) { throw new RuntimeException(e); } } + drawRect(); getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(670, 100), PongApp.score1, PongApp.score2)); + repaint(); + + revalidate(); + + } + + @Override + public void update(){ + + //updateContentPane(); + + repaint(); + revalidate(); } @Override public void restart() { getContentPane().removeAll(); - update(); - drawRect(); //TODO: Trouver un moyen de ne pas avoir à redessiner le rectangle à chaque restart et rendre le restart plus générique + start(); + //drawRect(); //TODO: Trouver un moyen de ne pas avoir à redessiner le rectangle à chaque restart et rendre le restart plus générique } public void drawRect(){ @@ -69,4 +82,20 @@ public class GraphicEngine extends JFrame implements Engine { this.getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(500, 100), score1, score2)); } + + public void updateContentPane() { + System.out.println(getContentPane().getComponents().length); + + /*for (Component jc: getContentPane().getComponents() + ) { + //System.out.println(jc.toString()); + System.out.println(jc.getX() + " " + jc.getY()); + jc.setLocation(0, 0); + getContentPane().getComponents()[0].setLocation(0, 0); + jc.repaint(); + } + + */ + getContentPane().repaint(); + } } diff --git a/src/main/java/engine/graphic/ImageComponent.java b/src/main/java/engine/graphic/ImageComponent.java index 2f57f83cd490cccec4d2d9d387289ee8769011f4..3efac2a9098e3b5928251452501e116bed6e373d 100644 --- a/src/main/java/engine/graphic/ImageComponent.java +++ b/src/main/java/engine/graphic/ImageComponent.java @@ -33,6 +33,10 @@ public class ImageComponent extends JComponent { return position; } + public void setPosition(Coordinates2D position) { + this.position = position; + } + @Override protected void paintComponent(Graphics g) { super.paintComponent(g); diff --git a/src/main/java/pong/PongApp.java b/src/main/java/pong/PongApp.java index 51b1521cdaa7c4106fecaa79db6d3c5f5bc82e54..5cbd114459f3685e5db221db17fe7232fd2cc213 100644 --- a/src/main/java/pong/PongApp.java +++ b/src/main/java/pong/PongApp.java @@ -15,7 +15,7 @@ public class PongApp { public static boolean isGoal = false; - public static ArrayList<PongObject> components = new ArrayList<PongObject>(); + public static ArrayList<PongObject> components = new ArrayList<>(); public static int width = 800; public static int height = 600;