Skip to content
Snippets Groups Projects
Select Git revision
  • 8227e049d3d791aeb28af319127e5513562dbfb7
  • master default protected
2 results

BreadthFirstSearch.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Kernel.java 3.16 KiB
    package engine;
    
    import pong.PongApp;
    import pong.PongObject;
    
    import javax.swing.*;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Random;
    
    public class Kernel {
    
        engine.Grid grid;
    
        //public HashMap<PongObject, ImageComponent> pongObjectImageComponentHashMap = new HashMap<>();
        public HashMap<PongObject, Movable> pongObjectEntityHashMap = new HashMap<>();
        Movable movable;
    
        public Kernel(Grid grid) {
            System.out.println("Model created");
            this.grid = grid;
        }
    
        /**
         * Start the game. Associate a Movable to each GameObject and draw them.
         * 
         * @throws IOException
         */
        public void start() throws IOException {
            Random random = new Random(); // For random speed
    
            for (PongObject pongObject: PongApp.components) {
                //Coordinates2D speed = new Coordinates2D(random.nextInt(2) - 1, random.nextInt(2) - 1);
                Coordinates2D speed = new Coordinates2D(0, 1);
                pongObjectEntityHashMap.put(pongObject, new Movable(1, pongObject.getPosition(), speed, new Coordinates2D(0, 0), pongObject.getWidth(), pongObject.getHeight()));
                grid.draw(new ImageComponent(pongObject.getImage(), pongObject.getPosition(), pongObject.getWidth(), pongObject.getHeight()));
            }
        }
    
    
        /**
         * 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 (PongObject pongObject: PongApp.components) {
                pongObjectEntityHashMap.get(pongObject).updatePosition(); // Updating of the associated movable position
    
                pongObject.setPosition(pongObjectEntityHashMap.get(pongObject).getPosition()); // Updating of the pong object position
    
                try {
                    grid.draw(new ImageComponent(pongObject.getImage(), pongObject.getPosition(), pongObject.getWidth(), pongObject.getHeight()));
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            // Repainting the grid
            grid.repaint();
            grid.revalidate();
        }
    
        /**
         * Listen to keyboard events.
         */
        public void setKeysListeners(JPanel mainPanel) {
            mainPanel.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(java.awt.event.KeyEvent evt) {
                    switch (evt.getKeyCode()) {
                        // J'ai essayé mais je me perds pour gerer les debordements