diff --git a/.idea/artifacts/Programmieren_2_jar.xml b/.idea/artifacts/Programmieren_2_jar.xml
new file mode 100644
index 0000000..889daac
--- /dev/null
+++ b/.idea/artifacts/Programmieren_2_jar.xml
@@ -0,0 +1,10 @@
+
+
+ $PROJECT_DIR$/out/artifacts/Programmieren_2_jar
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SuperPangWorld/src/META-INF/MANIFEST.MF b/SuperPangWorld/src/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f9ac34c
--- /dev/null
+++ b/SuperPangWorld/src/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: de.thdeg.greiner.superpangworld.game.Start
+
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java
new file mode 100644
index 0000000..b9c7fde
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java
@@ -0,0 +1,51 @@
+package de.thdeg.greiner.superpangworld.game;
+
+import de.thdeg.greiner.superpangworld.objects.Bubble;
+import de.thdeg.greiner.superpangworld.objects.Harpoon;
+import de.thdeg.greiner.superpangworld.objects.LevelLabel;
+import de.thdeg.greiner.superpangworld.objects.LevelProgressBar;
+
+import java.awt.*;
+
+/** Der Manager zur Verwaltung der Spielschleife. */
+public class GameLoopManager {
+
+ private GameView gameView;
+ private Bubble bubble;
+ private Harpoon harpoon;
+
+ private LevelProgressBar levelProgressBar;
+ private LevelLabel levelLabel;
+
+ /** Erzeugt den GameLoopManager mit Standardwerten. */
+ public GameLoopManager() {
+ this.gameView = new GameView();
+ this.gameView.setWindowTitle("Super Pang World");
+ this.gameView.setStatusText("Andreas Greiner - Java Programmierung SS 2021");
+ this.gameView.setWindowIcon("Target.png");
+
+ this.bubble = new Bubble(gameView);
+ this.harpoon = new Harpoon(gameView);
+
+ this.levelProgressBar = new LevelProgressBar(gameView);
+ this.levelLabel = new LevelLabel(gameView);
+
+ gameView.setColorForBlockImage('k',Color.LIGHT_GRAY);
+ }
+
+ /** Startet das Spiel. */
+ public void startGame() {
+ while(true){
+ bubble.updatePosition();
+ bubble.addToCanvas();
+ harpoon.addToCanvas();
+
+ levelProgressBar.addToCanvas();
+ levelLabel.addToCanvas();
+
+ gameView.printCanvas();
+ }
+ }
+
+
+}
diff --git a/SuperPangWorld/src/superpangworld/GameView.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java
similarity index 99%
rename from SuperPangWorld/src/superpangworld/GameView.java
rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java
index 97656ce..e69d0ed 100644
--- a/SuperPangWorld/src/superpangworld/GameView.java
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java
@@ -1,4 +1,4 @@
-package view;
+package de.thdeg.greiner.superpangworld.game;
import javax.imageio.ImageIO;
import javax.sound.sampled.*;
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/Start.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/Start.java
new file mode 100644
index 0000000..6c86166
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/Start.java
@@ -0,0 +1,13 @@
+package de.thdeg.greiner.superpangworld.game;
+
+import de.thdeg.greiner.superpangworld.game.GameLoopManager;
+
+/**
+ * Die Startklasse für das Spiel.
+ */
+public class Start {
+ public static void main(String[] args) {
+ GameLoopManager gameLoopManager = new GameLoopManager();
+ gameLoopManager.startGame();
+ }
+}
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java
new file mode 100644
index 0000000..5e19b97
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java
@@ -0,0 +1,83 @@
+package de.thdeg.greiner.superpangworld.objects;
+
+import de.thdeg.greiner.superpangworld.game.GameView;
+
+import java.awt.*;
+
+/**
+ * A Bubble, which moves around on the screen and can be shot by the player.
+ */
+public class Bubble extends GameObject{
+
+ /** The pixel art for the bubble */
+ private final static String BUBBLE =
+ " RRRR \n"+
+ " RWRRRR \n"+
+ " RWRRRRRR \n"+
+ " RWRRRRRRRR \n"+
+ "RWRRRRRRRRRR\n"+
+ "RWRRRRRRRRRR\n"+
+ "RWRRRRRRRRWR\n"+
+ "RRRRRRRRRWWR\n"+
+ " RRRRRRRWWR \n"+
+ " RRRRRWWR \n"+
+ " RRRWWR \n"+
+ " RRRR \n";
+
+ /** Flag, if the bubble flies from left to right */
+ private boolean flyFromLeftToRight;
+
+ /**
+ * Create a bubble with default values.
+ * @param gameView the {@link GameView} to display the bubble
+ */
+ public Bubble(GameView gameView){
+ super(gameView);
+ rotation = 90;
+ size = 5;
+ width = (int) size * 12;
+ height = (int) size * 12;
+ speedInPixel = 5;
+ flyFromLeftToRight = true;
+ }
+
+ /**
+ * Draws the bubble onto the canvas of the {@link GameView}.
+ */
+ @Override
+ public void addToCanvas(){
+ gameView.addBlockImageToCanvas(BUBBLE, getPosition().x, getPosition().y,size, rotation);
+ }
+
+ @Override
+ public String toString() {
+ return "Bubble:" + getPosition().toString();
+ }
+
+ /**
+ * Moves the bubble a tick further.
+ */
+ @Override
+ public void updatePosition(){
+ if(flyFromLeftToRight && getPosition().x + width >= GameView.WIDTH){
+ flyFromLeftToRight = false;
+ }else if (!flyFromLeftToRight && getPosition().x <= 0){
+ flyFromLeftToRight = true;
+ }
+ if(flyFromLeftToRight){
+ getPosition().right(1);
+ }else{
+ getPosition().left(1);
+ }
+ }
+
+ /**
+ * Pop the bubble.
+ */
+ private void popBubble(){}
+
+ /**
+ * Freezes the time.
+ */
+ private void freezeTime(){}
+}
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java
new file mode 100644
index 0000000..82b27ee
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java
@@ -0,0 +1,55 @@
+package de.thdeg.greiner.superpangworld.objects;
+
+import de.thdeg.greiner.superpangworld.game.GameView;
+
+/**
+ * A basic game object.
+ */
+class GameObject {
+
+ /** The game view to display the game object on. */
+ protected final GameView gameView;
+ /** The position of the game object. */
+ protected final Position position;
+ /** The size of the game object. */
+ protected double size;
+ /** The speed in pixel per tick of the game object. */
+ protected double speedInPixel;
+ /** The rotation of the game object. */
+ protected double rotation;
+ /** The width of the game object. */
+ protected int width;
+ /** The height of the game object. */
+ protected int height;
+
+ /**
+ * Create a game object with default values.
+ * @param gameView the gameView
+ */
+ protected GameObject(GameView gameView){
+ this.gameView = gameView;
+ position = new Position(0,0);
+ }
+
+ /**
+ * Update the position of the game object.
+ */
+ public void updatePosition(){
+
+ }
+
+ /**
+ * Add the game object to the canvas.
+ */
+ public void addToCanvas(){
+
+ }
+
+ /**
+ * Get the position of the game object.
+ * @return the position
+ */
+ public Position getPosition(){
+ return position;
+ }
+}
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java
new file mode 100644
index 0000000..24e895f
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java
@@ -0,0 +1,53 @@
+package de.thdeg.greiner.superpangworld.objects;
+
+import de.thdeg.greiner.superpangworld.game.GameView;
+
+import java.awt.*;
+
+/**
+ * A harpoon which can be fired upwards by the player.
+ */
+public class Harpoon extends GameObject{
+
+ private final static String HARPOON =
+ " B \n"+
+ " BBB \n"+
+ " kkkkk \n"+
+ " k kkk k\n"+
+ " k kkk k\n";
+
+ /**
+ * Create a harpoon with default values
+ * @param gameView the {@link GameView} to display the bubble
+ */
+ public Harpoon(GameView gameView){
+ super(gameView);
+ speedInPixel = 10;
+ size = 3;
+ width = (int) size * 11;
+ height =(int) size * 11;
+ rotation = 0;
+ getPosition().setTo(300,300);
+ }
+
+ /**
+ * Zeichnet die Blase auf die {@link GameView}.
+ */
+ @Override
+ public void addToCanvas(){
+ gameView.addBlockImageToCanvas(HARPOON, getPosition().x, getPosition().y,size, rotation);
+ }
+
+ @Override
+ public String toString() {
+ return "Harpoon:" +getPosition().toString();
+ }
+
+ /**
+ * Bewegt die Harpune einen Schritt weiter.
+ */
+ @Override
+ public void updatePosition(){
+ getPosition().up(speedInPixel);
+ }
+}
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java
new file mode 100644
index 0000000..0b69a6d
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java
@@ -0,0 +1,45 @@
+package de.thdeg.greiner.superpangworld.objects;
+
+import de.thdeg.greiner.superpangworld.game.GameView;
+
+import java.awt.*;
+
+/**
+ * The label to display the current level.
+ */
+public class LevelLabel extends GameObject{
+
+ /** The level to display */
+ private int level;
+
+ /**
+ * Create a progress bar with default values.
+ * @param gameView the {@link GameView} to display the progress bar
+ */
+ public LevelLabel(GameView gameView){
+ super(gameView);
+ size = 3;
+ width = (int) size * 101;
+ height = (int) size * 8;
+ level = 8;
+ getPosition().setTo(GameView.WIDTH/2 - (width/2),GameView.HEIGHT-height-60);
+ }
+
+ /**
+ * Draws the level progress bar onto the canvas of the {@link GameView}.
+ */
+ @Override
+ public void addToCanvas(){
+ gameView.addTextToCanvas("Level "+level,getPosition().x,getPosition().y,40,Color.YELLOW,0);
+ }
+
+ @Override
+ public void updatePosition() {
+ super.updatePosition();
+ }
+
+ @Override
+ public String toString() {
+ return "LevelLabel:" +getPosition().toString();
+ }
+}
diff --git a/SuperPangWorld/src/superpangworld/LevelLabel.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java
similarity index 66%
rename from SuperPangWorld/src/superpangworld/LevelLabel.java
rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java
index 0e17223..a792597 100644
--- a/SuperPangWorld/src/superpangworld/LevelLabel.java
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java
@@ -1,24 +1,14 @@
-package superpangworld;
+package de.thdeg.greiner.superpangworld.objects;
+
+import de.thdeg.greiner.superpangworld.game.GameView;
import java.awt.*;
/**
* The progress bar of a level.
*/
-public class LevelProgressBar {
+public class LevelProgressBar extends GameObject{
- /** The position of the progress bar */
- private Position position;
- /** The color of the progress bar */
- private final Color color;
- /** The size of the progress bar */
- private final double size;
- /** The width of the progress bar */
- private final double width;
- /** The height of the progress bar */
- private final double height;
- /** The GameView to display the progress bar*/
- private final GameView gameView;
/** The progress of the level ranging from 0
to 100
*/
private int levelProgress;
/** The top and bottom border of the progress bar */
@@ -29,30 +19,35 @@ public class LevelProgressBar {
* @param gameView the {@link GameView} to display the progress bar
*/
public LevelProgressBar(GameView gameView){
- color = Color.BLUE;
+ super(gameView);
size = 3;
- width = size * 101;
- height = size * 8;
+ width = (int) size * 101;
+ height = (int) size * 8;
levelProgress = 30;
- this.gameView = gameView;
- position = new Position(GameView.WIDTH/2 - (width/2),GameView.HEIGHT-height);
+ getPosition().setTo(GameView.WIDTH/2 - (width/2),GameView.HEIGHT-height);
}
/**
* Draws the level progress bar onto the canvas of the {@link GameView}.
*/
+ @Override
public void addToCanvas(){
String pixelArt = PROGRESS_BAR_BORDER;
String progressBarMiddle = getProgressBarMiddle(levelProgress);
pixelArt += progressBarMiddle.repeat(6);
pixelArt += PROGRESS_BAR_BORDER;
- gameView.addBlockImageToCanvas(pixelArt, position.x, position.y,size, 0);
+ gameView.addBlockImageToCanvas(pixelArt, getPosition().x, getPosition().y,size, 0);
+ }
+
+ @Override
+ public void updatePosition() {
+ super.updatePosition();
}
@Override
public String toString() {
- return "Harpoon:" +position.toString();
+ return "LevelProgressBar:" +getPosition().toString();
}
/**
diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java
new file mode 100644
index 0000000..cc61728
--- /dev/null
+++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java
@@ -0,0 +1,106 @@
+package de.thdeg.greiner.superpangworld.objects;
+
+/**
+ * Die Position eines Objekts auf einem Fenster anhand zweidimensionaler Koordinaten.
+ */
+public class Position {
+
+ /** Die x-Koordinate */
+ public double x;
+ /** Die y-Koordinate */
+ public double y;
+
+ /**
+ * Erzeugt eine Position mit den übergebenen Koordinaten.
+ *
+ * @param x die x-Koordinate des Objekts
+ * @param y die y-Koordinate des Objekts
+ */
+ public Position(double x, double y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ /**
+ * Erzeugt eine Standardposition für die Koordinaten (0, 0).
+ */
+ public Position(){
+ this(0,0);
+ }
+
+ /**
+ * Veränderung der Position um einen Pixel nach links.
+ */
+ public void left() {
+ x--;
+ }
+
+ /**
+ * Veränderung der Position nach links.
+ * @param pixel die Anzahl der Pixel
+ */
+ public void left(double pixel){
+ x -= pixel;
+ }
+
+ /**
+ * Veränderung der Position um einen Pixel nach rechts.
+ */
+ public void right() {
+ x++;
+ }
+
+ /**
+ * Veränderung der Position nach rechts.
+ * @param pixel die Anzahl der Pixel
+ */
+ public void right(double pixel){
+ x += pixel;
+ }
+
+ /**
+ * Veränderung der Position um einen Pixel nach oben.
+ */
+ public void up() {
+ y--;
+ }
+
+ /**
+ * Veränderung der Position nach oben.
+ * @param pixel die Anzahl der Pixel
+ */
+ public void up(double pixel){
+ y -= pixel;
+ }
+
+ /**
+ * Veränderung der Position um einen Pixel nach unten.
+ */
+ public void down() {
+ y++;
+ }
+
+ /**
+ * Veränderung der Position nach unten.
+ * @param pixel die Anzahl der Pixel
+ */
+ public void down(double pixel){
+ y += pixel;
+ }
+
+ /**
+ * Set the position to given x and y coordinates.
+ * @param x the x coordinate
+ * @param y the y coordinate
+ */
+ public void setTo(double x, double y){
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public String toString() {
+ return "Position(" + (int) Math.round(x) + ", " + (int) Math.round(y) + ')';
+ }
+
+}
diff --git a/SuperPangWorld/src/superpangworld/Bubble.java b/SuperPangWorld/src/superpangworld/Bubble.java
deleted file mode 100644
index 5003f14..0000000
--- a/SuperPangWorld/src/superpangworld/Bubble.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package superpangworld;public class Bubble {
-}
diff --git a/SuperPangWorld/src/superpangworld/GameLoopManager.java b/SuperPangWorld/src/superpangworld/GameLoopManager.java
deleted file mode 100644
index 4883324..0000000
--- a/SuperPangWorld/src/superpangworld/GameLoopManager.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package superpangworld;public class GameLoopManager {
-}
diff --git a/SuperPangWorld/src/superpangworld/Harpoon.java b/SuperPangWorld/src/superpangworld/Harpoon.java
deleted file mode 100644
index 86220d6..0000000
--- a/SuperPangWorld/src/superpangworld/Harpoon.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package superpangworld;public class Harpoon {
-}
diff --git a/SuperPangWorld/src/superpangworld/LevelProgressBar.java b/SuperPangWorld/src/superpangworld/LevelProgressBar.java
deleted file mode 100644
index 35f9409..0000000
--- a/SuperPangWorld/src/superpangworld/LevelProgressBar.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package superpangworld;
-
-import java.awt.*;
-
-/**
- * The progress of a level.
- */
-public class LevelProgress {
-
- private final static String HARPOON =
- " B \n"+
- " BBB \n"+
- " kkkkk \n"+
- " k kkk k\n"+
- " k kkk k\n";
-
- /** The position of the harpoon */
- private Position position;
- /** The speed of the harpune in pixel per tick */
- private final double speedInPixel;
- /** The color of the harpoon */
- private final Color color;
- /** The size of the harpoon */
- private final double size;
- /** The rotation of the harpoon */
- private final double rotation;
- /** The width of the harpoon */
- private final double width;
- /** The height of the harpoon */
- private final double height;
- /** The GameView to display the harpoon*/
- private final GameView gameView;
-
- /**
- * Create a harpoon with default values
- * @param gameView the {@link GameView} to display the bubble
- */
- public LevelProgress(GameView gameView){
- color = Color.BLUE;
- position = new Position(300,300);
- speedInPixel = 10;
- size = 3;
- width = size * 11;
- height = size * 11;
- rotation = 0;
-
- this.gameView = gameView;
- }
-
- /**
- * Zeichnet die Blase auf die {@link GameView}.
- */
- public void addToCanvas(){
- gameView.addBlockImageToCanvas(HARPOON, position.x, position.y,size, rotation);
- }
-
- @Override
- public String toString() {
- return "Harpoon:" +position.toString();
- }
-
- /**
- * Bewegt die Harpune einen Schritt weiter.
- */
- public void updatePosition(){
- position.up(speedInPixel);
- }
-}
diff --git a/SuperPangWorld/src/superpangworld/Position.java b/SuperPangWorld/src/superpangworld/Position.java
deleted file mode 100644
index 2695d75..0000000
--- a/SuperPangWorld/src/superpangworld/Position.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package superpangworld;
-
-/**
- * Die Position eines Objekts auf einem Fenster anhand zweidimensoinaler Koordinaten
- */
-public class Position {
-
- /** Die x-Koordinate */
- public double x;
- /** Die y-Koordinate */
- public double y;
-
- /**
- * Erzeugt eine Position mit den übergebenen Koordinaten
- *
- * @param x die x-Koordinate des Objekts
- * @param y die y-Koordinate des Objekts
- */
- public Position(double x, double y) {
- this.x = x;
- this.y = y;
- }
-
- /**
- * Veränderung der Position um einen Pixel nach links
- */
- public void left() {
- x--;
- }
-
- /**
- * Veränderung der Position um einen Pixel nach rechts
- */
- public void right() {
- x++;
- }
-
- /**
- * Veränderung der Position um einen Pixel nach oben
- */
- public void up() {
- y--;
- }
-
- /**
- * Veränderung der Position um einen Pixel nach unten
- */
- public void down() {
- y++;
- }
-
- @Override
- public String toString() {
- return "Position(" + (int) Math.round(x) + ", " + (int) Math.round(y) + ')';
- }
-
-}
diff --git a/SuperPangWorld/src/superpangworld/Start.java b/SuperPangWorld/src/superpangworld/Start.java
deleted file mode 100644
index 813e48b..0000000
--- a/SuperPangWorld/src/superpangworld/Start.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package superpangworld;
-
-public class Start {
- public static void main(String[] args) {
- System.out.println("Spiel");
-
- Position pos1 = new Position(100, 110);
- Position pos2 = new Position(200, 300);
-
- pos2.down();
- pos2.right();
-
- System.out.println(pos1);
- System.out.println(pos2);
- }
-}
diff --git a/out/artifacts/Programmieren_2_jar/Programmieren 2.jar b/out/artifacts/Programmieren_2_jar/Programmieren 2.jar
new file mode 100644
index 0000000..d77d84d
Binary files /dev/null and b/out/artifacts/Programmieren_2_jar/Programmieren 2.jar differ
diff --git a/out/production/SuperPangWorld/META-INF/MANIFEST.MF b/out/production/SuperPangWorld/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f9ac34c
--- /dev/null
+++ b/out/production/SuperPangWorld/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: de.thdeg.greiner.superpangworld.game.Start
+
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameLoopManager.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameLoopManager.class
new file mode 100644
index 0000000..d5a3bca
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameLoopManager.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Canvas.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Canvas.class
new file mode 100644
index 0000000..0b41944
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Canvas.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$EndScreen.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$EndScreen.class
new file mode 100644
index 0000000..a5db17b
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$EndScreen.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$1.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$1.class
new file mode 100644
index 0000000..4b8f1dc
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$1.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$2.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$2.class
new file mode 100644
index 0000000..d816b8a
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$2.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$3.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$3.class
new file mode 100644
index 0000000..cd9e69a
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$3.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$4.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$4.class
new file mode 100644
index 0000000..96abb48
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame$4.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame.class
new file mode 100644
index 0000000..0c802e3
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Frame.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$GameTime.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$GameTime.class
new file mode 100644
index 0000000..87b059a
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$GameTime.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$ImageObject.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$ImageObject.class
new file mode 100644
index 0000000..8432f79
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$ImageObject.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Keyboard.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Keyboard.class
new file mode 100644
index 0000000..fc2ebe2
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Keyboard.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Line.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Line.class
new file mode 100644
index 0000000..00cc5ad
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Line.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Mouse.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Mouse.class
new file mode 100644
index 0000000..f37e5ea
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Mouse.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Oval.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Oval.class
new file mode 100644
index 0000000..f8d9faf
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Oval.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PaintingPanel.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PaintingPanel.class
new file mode 100644
index 0000000..49a5a56
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PaintingPanel.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PolyLine.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PolyLine.class
new file mode 100644
index 0000000..4169b49
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PolyLine.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Polygon.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Polygon.class
new file mode 100644
index 0000000..cd498c3
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Polygon.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PrintObject.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PrintObject.class
new file mode 100644
index 0000000..6d241ce
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$PrintObject.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Rectangle.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Rectangle.class
new file mode 100644
index 0000000..0801a1d
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Rectangle.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Screen.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Screen.class
new file mode 100644
index 0000000..6b8040f
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Screen.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SelectionManager.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SelectionManager.class
new file mode 100644
index 0000000..df63002
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SelectionManager.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleBox.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleBox.class
new file mode 100644
index 0000000..9487d9f
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleBox.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleStartScreen.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleStartScreen.class
new file mode 100644
index 0000000..adb19a5
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SimpleStartScreen.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Sound.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Sound.class
new file mode 100644
index 0000000..64cb867
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Sound.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox$SelectionBox.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox$SelectionBox.class
new file mode 100644
index 0000000..068026a
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox$SelectionBox.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox.class
new file mode 100644
index 0000000..5d0ffb5
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$StartScreenWithChooseBox.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SwingAdapter.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SwingAdapter.class
new file mode 100644
index 0000000..8f89387
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$SwingAdapter.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Version.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Version.class
new file mode 100644
index 0000000..4ffb4a0
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Version.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Window.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Window.class
new file mode 100644
index 0000000..d2a53a0
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView$Window.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView.class
new file mode 100644
index 0000000..4f65a5f
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/GameView.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/Start.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/Start.class
new file mode 100644
index 0000000..149cdae
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/Start.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Bubble.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Bubble.class
new file mode 100644
index 0000000..1333e9c
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Bubble.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/GameObject.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/GameObject.class
new file mode 100644
index 0000000..0f23bf8
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/GameObject.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Harpoon.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Harpoon.class
new file mode 100644
index 0000000..6051830
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Harpoon.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelLabel.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelLabel.class
new file mode 100644
index 0000000..ca53dd7
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelLabel.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.class
new file mode 100644
index 0000000..dbcc8f4
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.class differ
diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Position.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Position.class
new file mode 100644
index 0000000..0b3ad90
Binary files /dev/null and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/objects/Position.class differ
diff --git a/out/production/SuperPangWorld/resources/Herz.png b/out/production/SuperPangWorld/resources/Herz.png
new file mode 100644
index 0000000..dc04122
Binary files /dev/null and b/out/production/SuperPangWorld/resources/Herz.png differ
diff --git a/out/production/SuperPangWorld/resources/Player.png b/out/production/SuperPangWorld/resources/Player.png
new file mode 100644
index 0000000..0f0154c
Binary files /dev/null and b/out/production/SuperPangWorld/resources/Player.png differ
diff --git a/out/production/SuperPangWorld/resources/Target.png b/out/production/SuperPangWorld/resources/Target.png
new file mode 100644
index 0000000..b8d072e
Binary files /dev/null and b/out/production/SuperPangWorld/resources/Target.png differ
diff --git a/out/production/SuperPangWorld/superpangworld/Position.class b/out/production/SuperPangWorld/superpangworld/Position.class
deleted file mode 100644
index bf5bf77..0000000
Binary files a/out/production/SuperPangWorld/superpangworld/Position.class and /dev/null differ
diff --git a/out/production/SuperPangWorld/superpangworld/Start.class b/out/production/SuperPangWorld/superpangworld/Start.class
deleted file mode 100644
index 65013b4..0000000
Binary files a/out/production/SuperPangWorld/superpangworld/Start.class and /dev/null differ