From 6e3a5a248cee29bdfb02d3767692743fdd13d4eb Mon Sep 17 00:00:00 2001
From: c7h-alb-u1 <ibrahim.zakari@stud.hs-hannover.de>
Date: Wed, 13 Oct 2021 13:23:05 +0200
Subject: [PATCH] Update src/GameFrame.java, src/GameObject.java,
 src/GamePanel.java, src/Main.java, src/Walls.java, out/MazeGame.jar files

---
 out/MazeGame.jar    | Bin 0 -> 6356 bytes
 src/GameFrame.java  |  71 +++++++++++++++++++++++
 src/GameObject.java |  19 ++++++
 src/GamePanel.java  | 138 ++++++++++++++++++++++++++++++++++++++++++++
 src/Main.java       |   9 +++
 src/Walls.java      | 119 ++++++++++++++++++++++++++++++++++++++
 6 files changed, 356 insertions(+)
 create mode 100644 out/MazeGame.jar
 create mode 100644 src/GameFrame.java
 create mode 100644 src/GameObject.java
 create mode 100644 src/GamePanel.java
 create mode 100644 src/Main.java
 create mode 100644 src/Walls.java

diff --git a/out/MazeGame.jar b/out/MazeGame.jar
new file mode 100644
index 0000000000000000000000000000000000000000..8ff2c27a0bc21f529c6b44057b553f0ecae57cbd
GIT binary patch
literal 6356
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

literal 0
HcmV?d00001

diff --git a/src/GameFrame.java b/src/GameFrame.java
new file mode 100644
index 0000000..68b715d
--- /dev/null
+++ b/src/GameFrame.java
@@ -0,0 +1,71 @@
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+public class GameFrame extends JFrame implements ActionListener {
+
+    private static final long serialVersionUID = 1L;
+    GamePanel game;
+    JPanel score;
+    JPanel start;
+    JButton resetButton;
+    JButton startGame;
+
+    public GameFrame(int width, int height, String title) {
+
+        this.setTitle(title);
+        this.setSize(width, height);
+        this.setResizable(false);
+        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        this.setLocationRelativeTo(null);
+
+
+        resetButton = new JButton();
+        resetButton.setText("Reset");
+        resetButton.setSize(100,30);
+        resetButton.addActionListener(this);
+        resetButton.setFocusable(false);
+
+        startGame = new JButton();
+        startGame.setText("Start");
+        startGame.setSize(200,200);
+        startGame.setLocation(250,250);
+        startGame.addActionListener(this);
+        startGame.setFocusable(false);
+
+        score = new JPanel();
+        score.setBackground(Color.black);
+        score.add(resetButton);
+        score.setFocusable(true);
+
+        start = new JPanel();
+        start.setBackground(Color.black);
+        start.setSize(getWidth(),getHeight());
+        start.setLocation(0,0);
+        start.add(startGame);
+
+        this.add(start);
+        this.setVisible(true);
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        if(e.getSource() == resetButton){
+            this.remove(game);
+            game = new GamePanel();
+            this.add(game);
+            SwingUtilities.updateComponentTreeUI(this);
+            game.requestFocus();
+        }
+        if(e.getSource() == startGame){
+            this.remove(start);
+            game = new GamePanel();
+            this.add(score,BorderLayout.NORTH);
+            this.add(game);
+            SwingUtilities.updateComponentTreeUI(this);
+            game.requestFocus();
+        }
+    }
+
+}
diff --git a/src/GameObject.java b/src/GameObject.java
new file mode 100644
index 0000000..fe33303
--- /dev/null
+++ b/src/GameObject.java
@@ -0,0 +1,19 @@
+import java.awt.*;
+import java.awt.event.*;
+
+public class GameObject extends Rectangle{
+
+    Color color;
+
+    GameObject(int x, int y, int width, int height, Color color){
+        this.x=x;
+        this.y=y;
+        this.width=width;
+        this.height=height;
+        this.color=color;
+    }
+    public void draw(Graphics g) {
+        g.setColor(this.color);
+        g.fillRect(this.x, this.y, this.width, this.height);
+    }
+}
diff --git a/src/GamePanel.java b/src/GamePanel.java
new file mode 100644
index 0000000..364208a
--- /dev/null
+++ b/src/GamePanel.java
@@ -0,0 +1,138 @@
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.concurrent.TimeUnit;
+
+public class GamePanel extends JPanel implements ActionListener, KeyListener {
+
+    private static final long serialVersionUID = 1L;
+
+    Timer timer = new Timer(5, this);
+    int x = 0, y = 0, velX = 0, velY = 0, veldX = 0, veldY = 0;
+    int playerSize = 22;
+    int movmentSpeed = 4;
+    int faildRounds;
+
+    ImageIcon ggwp;
+
+    private Walls finishWall;
+    private Walls walls;
+    private boolean play = true;
+
+    public GamePanel() {
+        timer.start();
+        addKeyListener(this);
+        setFocusable(true);
+        setFocusTraversalKeysEnabled(false);
+        walls = new Walls();
+        ggwp = new ImageIcon("res\\ggwp.png");
+        this.setSize(817,840);
+        this.setLocation(100,0);
+        this.requestFocus(true);
+    }
+
+    public void paintComponent(Graphics g) {
+        super.paintComponent(g);
+
+        g.setColor(Color.black);
+        g.fillRect(0,0,getWidth(),getWidth());
+
+        //Walls
+        walls.draw(this,g);
+
+        //Player
+        if(play) {
+            g.setColor(Color.red);
+            g.fillOval(x, y, playerSize, playerSize);
+        }
+        if(walls.wallsCollision(x,y,playerSize,playerSize)){
+            x = 0;
+            y=0;
+        }
+        if(walls.finishWallsCollision(x,y,playerSize,playerSize)){
+            play=false;
+        }
+        if(!play) {
+            gameOver(g);
+        }
+
+    }
+
+    public void gameOver(Graphics g) {
+        if(!play){
+            g.setColor(Color.black);
+            g.fillRect(0,0,getWidth(),getHeight());
+            ggwp.paintIcon(this,g,280,250);
+            faildRounds++;
+        }
+    }
+    public int getFailedRounds(){
+        return faildRounds;
+    }
+
+    @Override
+    public void keyPressed(KeyEvent e) {
+        int c = e.getKeyCode();
+        if(play) {
+            if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
+                veldX = -movmentSpeed;
+            if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
+                velX = movmentSpeed;
+            if (c == KeyEvent.VK_UP || c == KeyEvent.VK_W)
+                veldY = -movmentSpeed;
+            if (c == KeyEvent.VK_DOWN || c == KeyEvent.VK_S)
+                velY = movmentSpeed;
+        }
+
+    }
+
+    @Override
+    public void keyReleased(KeyEvent e) {
+        int c = e.getKeyCode();
+        if(play) {
+            if (c == KeyEvent.VK_LEFT || c == KeyEvent.VK_A)
+                veldX = 0;
+            if (c == KeyEvent.VK_RIGHT || c == KeyEvent.VK_D)
+                velX = 0;
+            if (c == KeyEvent.VK_UP || c == KeyEvent.VK_W)
+                veldY = 0;
+            if (c == KeyEvent.VK_DOWN || c == KeyEvent.VK_S)
+                velY = 0;
+        }
+
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+
+        if (x < 0) {
+            velX = 0;
+            x = 0;
+        }
+        if (x > getWidth() - playerSize) {
+            velX = 0;
+            x = getWidth() - playerSize;
+        }
+        if (y < 0) {
+            velY = 0;
+            y = 0;
+        }
+        if (y > getHeight() - playerSize) {
+            velY = 0;
+            y = getHeight() - playerSize;
+        }
+
+        x += velX + veldX;
+        y += velY + veldY;
+        repaint();
+
+    }
+
+    @Override
+    public void keyTyped(KeyEvent e) {
+    }
+
+}
diff --git a/src/Main.java b/src/Main.java
new file mode 100644
index 0000000..0ff7a49
--- /dev/null
+++ b/src/Main.java
@@ -0,0 +1,9 @@
+public class Main {
+
+    public static void main(String[] args) {
+
+        new GameFrame(820, 875, "Maze Game");
+
+    }
+
+}
diff --git a/src/Walls.java b/src/Walls.java
new file mode 100644
index 0000000..6596f44
--- /dev/null
+++ b/src/Walls.java
@@ -0,0 +1,119 @@
+import java.awt.*;
+
+public class Walls {
+    public int unit_size = 50;
+
+    int[] wallXPos = {
+            //upper wall
+            1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
+            //left wall
+            ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+            //down wall
+            1,2,3,4,5,6,7,8,9,10,11,12,13,
+            //right wall
+            15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
+            //rest
+            1,1,1,1,
+            2,2,2,2,
+            3,3,3,3,3,
+            4,4,4,4,4,4,
+            5,5,5,5,5,5,5,5,5,
+            6,6,6,6,
+            7,7,7,7,7,7,7,
+            8,8,8,8,8,8,
+            9,9,9,9,9,9,9,9,
+            10,10,10,10,10,
+            11,11,11,11,11,11,11,
+            12,12,12,12,
+            13,13,13,
+            14,14,14
+
+            };
+    int[] wallYPos = {
+            //upper wall
+            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+            //left wall
+            2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+            //down wall
+            15,15,15,15,15,15,15,15,15,15,15,15,15,
+            //right wall
+            1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
+            //rest
+            //1
+            3,8,9,12,
+            //2
+            1,3,6,12,
+            //3
+            3,6,7,10,14,
+            //4
+            2,3,7,8,10,12,
+            //5
+            2,3,4,8,9,10,11,12,13,
+            //6
+            4,8,9,13,
+            //7
+            1,2,4,6,7,8,11,
+            //8
+            4,8,11,12,13,14,
+            //9
+            1,2,4,5,6,8,10,11,
+            //10
+            1,4,8,11,13,
+            //11
+            4,6,7,8,9,11,13,
+            //12
+            8,11,13,4,
+            //13
+            8,11,13,
+            //14
+            3,8,13
+    };
+
+
+    public Walls() {
+
+    }
+
+
+    public void draw(Component c, Graphics g) {
+
+        for(int i=0; i< wallXPos.length;i++)
+        {
+                g.setColor(Color.GRAY);
+                g.fillRect(wallXPos[i]*unit_size,wallYPos[i]*unit_size,unit_size,unit_size);
+            }
+        g.setColor(Color.yellow);
+        g.fillRect(14*unit_size,15*unit_size,2*unit_size,unit_size);
+    }
+
+    public boolean wallsCollision(int x, int y,int width,int height)
+    {
+        boolean collided = false;
+        for(int i=0; i< wallXPos.length;i++)
+        {
+            if(new Rectangle(x, y, width, height).intersects(new Rectangle(wallXPos[i]*unit_size, wallYPos[i]*unit_size, 50, 50)))
+            {
+                collided = true;
+                break;
+            }
+        }
+
+        return collided;
+    }
+
+    public boolean finishWallsCollision(int x, int y,int width,int height)
+    {
+        boolean finishCollided = false;
+            if(new Rectangle(x, y, width, height).intersects(new Rectangle(14*unit_size, 15*unit_size, 50, 50)))
+            {
+                finishCollided = true;
+            }
+
+        return finishCollided;
+    }
+
+
+
+
+
+}
-- 
GitLab