diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.java index e6cddcb..a5a3e8f 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.java @@ -94,4 +94,21 @@ class GameObjectManager { public LinkedList getHarpoons() { return harpoons; } + + /** + * Adapts the position of all game objects. + * + * @param adaptX Adaption to the right. + * @param adaptY Adaption downwards. + */ + public void moveWorld(double adaptX, double adaptY) { + for (GameObject gameObject : gameObjects) { + if (gameObject.getClass() != LevelLabel.class + && gameObject.getClass() != LevelProgressBar.class + && gameObject.getClass() != LivesIcon.class + && gameObject.getClass() != ScoreLabel.class){ + gameObject.adaptPosition(adaptX, adaptY); + } + } + } } diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.java index 4286910..9cdcfda 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.java @@ -104,4 +104,22 @@ public class GamePlayManager { public void destroy(Harpoon harpoon){ gameObjectManager.getHarpoons().remove(harpoon); } + + /** + * Moves the World to the left. + * + * @param speedInPixel Speed to move the World + */ + public void playerMovingRight(double speedInPixel) { + gameObjectManager.moveWorld(-speedInPixel, 0); + } + + /** + * Moves the World to the right. + * + * @param speedInPixel Speed to move the World + */ + public void playerMovingLeft(double speedInPixel) { + gameObjectManager.moveWorld(speedInPixel, 0); + } } diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/base/GameObject.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/base/GameObject.java index 4985b38..1960fcc 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/base/GameObject.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/base/GameObject.java @@ -71,4 +71,15 @@ public abstract class GameObject { return position; } + /** + * Adapts the position of this game object, in case the whole game world is moved. + * + * @param adaptX Adaption to the right. + * @param adaptY Adaption downwards. + */ + public void adaptPosition(double adaptX, double adaptY){ + position.x += adaptX; + position.y += adaptY; + } + } diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/immovable/Background.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/immovable/Background.java index 170b365..bbef723 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/immovable/Background.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/immovable/Background.java @@ -10,9 +10,6 @@ import java.util.Random; */ public class Background extends GameObject { - - private final String pixelArt; - /** * Create a background object. * @@ -24,24 +21,12 @@ public class Background extends GameObject { size = 1; rotation = 0; - Random r = new Random(); - StringBuilder sb = new StringBuilder(); - for(int h=0;h<450;h++){ - for(int i=0;i<960;i++){ - if(r.nextBoolean()){ - sb.append("y"); - }else{ - sb.append("o"); - } - } - sb.append("\n"); - } - pixelArt = sb.toString(); + } @Override public void addToCanvas() { - gameView.addBlockImageToCanvas(pixelArt,position.x,position.y,size, rotation); + gameView.addImageToCanvas("background.png",position.x,position.y,size,rotation); } @Override diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/moveable/Player.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/moveable/Player.java index 4f3b382..1d5802b 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/moveable/Player.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/moveable/Player.java @@ -66,11 +66,19 @@ public class Player extends GameObject { /** Moves the character to the left */ public void left(){ - position.left(speedInPixel); + if (position.x > 300) { + position.left(speedInPixel); + } else { + gamePlayManager.playerMovingLeft(speedInPixel); + } } /** Moves the character to the right */ public void right(){ - position.right(speedInPixel); + if (position.x < GameView.WIDTH - width - 300) { + position.right(speedInPixel); + } else { + gamePlayManager.playerMovingRight(speedInPixel); + } } /** Moves the character upwards */ public void up(){ diff --git a/SuperPangWorld/src/resources/background.png b/SuperPangWorld/src/resources/background.png new file mode 100644 index 0000000..65f46a1 Binary files /dev/null and b/SuperPangWorld/src/resources/background.png differ diff --git a/out/artifacts/Programmieren_2_jar/Programmieren 2.jar b/out/artifacts/Programmieren_2_jar/Programmieren 2.jar index 39607e5..19b42e7 100644 Binary files a/out/artifacts/Programmieren_2_jar/Programmieren 2.jar and b/out/artifacts/Programmieren_2_jar/Programmieren 2.jar differ diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.class index 7c1b387..da94d60 100644 Binary files a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.class and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GameObjectManager.class differ diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.class index 1f59bba..afc9d05 100644 Binary files a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.class and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/game/managers/GamePlayManager.class differ diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/base/GameObject.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/base/GameObject.class index 2692068..699eb4b 100644 Binary files a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/base/GameObject.class and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/base/GameObject.class differ diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/immovable/Background.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/immovable/Background.class index e633f6a..b08bca8 100644 Binary files a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/immovable/Background.class and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/immovable/Background.class differ diff --git a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/moveable/Player.class b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/moveable/Player.class index 6be9612..03a8ca2 100644 Binary files a/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/moveable/Player.class and b/out/production/SuperPangWorld/de/thdeg/greiner/superpangworld/graphics/moveable/Player.class differ diff --git a/out/production/SuperPangWorld/resources/background.png b/out/production/SuperPangWorld/resources/background.png new file mode 100644 index 0000000..65f46a1 Binary files /dev/null and b/out/production/SuperPangWorld/resources/background.png differ