diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java index 1bdddfd..44e421a 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameLoopManager.java @@ -1,10 +1,10 @@ package de.thdeg.greiner.superpangworld.game; -import de.thdeg.greiner.superpangworld.objects.*; +import de.thdeg.greiner.superpangworld.gameview.GameView; +import de.thdeg.greiner.superpangworld.graphics.*; import java.awt.*; import java.awt.event.KeyEvent; -import java.security.Key; import java.util.Arrays; /** Der Manager zur Verwaltung der Spielschleife. */ @@ -20,7 +20,7 @@ public class GameLoopManager { private LevelLabel levelLabel; private ScoreLabel scoreLabel; - private Spielfigur spielfigur; + private Player player; /** Erzeugt den GameLoopManager mit Standardwerten. */ public GameLoopManager() { @@ -36,7 +36,7 @@ public class GameLoopManager { this.levelLabel = new LevelLabel(gameView); this.scoreLabel = new ScoreLabel(gameView); - this.spielfigur = new Spielfigur(gameView); + this.player = new Player(gameView); gameView.setColorForBlockImage('k',Color.LIGHT_GRAY); } @@ -55,7 +55,7 @@ public class GameLoopManager { levelLabel.addToCanvas(); scoreLabel.addToCanvas(); - spielfigur.addToCanvas(); + player.addToCanvas(); gameView.printCanvas(); } @@ -64,15 +64,15 @@ public class GameLoopManager { void updateUserInputs() { Integer[] gedruekteTasten = gameView.getKeyCodesOfCurrentlyPressedKeys(); if(Arrays.stream(gedruekteTasten).anyMatch(k -> k == KeyEvent.VK_SPACE)){ - spielfigur.shoot(); + player.shoot(); } for (int keyCode : gedruekteTasten) { switch(keyCode) { case KeyEvent.VK_LEFT: - spielfigur.left(); + player.left(); break; case KeyEvent.VK_RIGHT: - spielfigur.right(); + player.right(); break; default: continue; diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/gameview/GameView.java similarity index 99% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/gameview/GameView.java index e69d0ed..89d1131 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/game/GameView.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/gameview/GameView.java @@ -1,4 +1,4 @@ -package de.thdeg.greiner.superpangworld.game; +package de.thdeg.greiner.superpangworld.gameview; import javax.imageio.ImageIO; import javax.sound.sampled.*; diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Background.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Background.java new file mode 100644 index 0000000..f7e26ec --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Background.java @@ -0,0 +1,19 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + +/** + * The background for the game. + */ +public class Background extends GameObject{ + + + /** + * Create a background object. + * + * @param gameView the gameView + */ + protected Background(GameView gameView) { + super(gameView); + } +} diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Bubble.java similarity index 94% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Bubble.java index 16f7000..396fdab 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Bubble.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Bubble.java @@ -1,8 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; - -import java.awt.*; +import de.thdeg.greiner.superpangworld.gameview.GameView; /** * A Bubble, which moves around on the screen and can be shot by the player. diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/GameObject.java similarity index 91% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/GameObject.java index 82b27ee..fbff9be 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/GameObject.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/GameObject.java @@ -1,6 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; +import de.thdeg.greiner.superpangworld.gameview.GameView; /** * A basic game object. diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Harpoon.java similarity index 90% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Harpoon.java index 49da869..7c59688 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Harpoon.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Harpoon.java @@ -1,8 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; - -import java.awt.*; +import de.thdeg.greiner.superpangworld.gameview.GameView; /** * A harpoon which can be fired upwards by the player. diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/HexagonalBubble.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/HexagonalBubble.java new file mode 100644 index 0000000..7be4227 --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/HexagonalBubble.java @@ -0,0 +1,18 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + +/** + * The rare hexagonal bubble. + */ +public class HexagonalBubble extends Bubble{ + + /** + * Create a hexagonal bubble with default values. + * + * @param gameView the {@link GameView} to display the bubble + */ + public HexagonalBubble(GameView gameView) { + super(gameView); + } +} diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelLabel.java similarity index 90% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelLabel.java index 1a38a2f..bbe95d2 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelLabel.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelLabel.java @@ -1,6 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; +import de.thdeg.greiner.superpangworld.gameview.GameView; import java.awt.*; diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelProgressBar.java similarity index 94% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelProgressBar.java index 52c59d3..f897502 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/LevelProgressBar.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LevelProgressBar.java @@ -1,8 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; - -import java.awt.*; +import de.thdeg.greiner.superpangworld.gameview.GameView; /** * The progress bar of a level. diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesIcon.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesIcon.java new file mode 100644 index 0000000..7439dbf --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesIcon.java @@ -0,0 +1,17 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + +/** + * The icon to display the remaining lives. + */ +public class LivesIcon extends GameObject{ + /** + * Create a game object with default values. + * + * @param gameView the gameView + */ + protected LivesIcon(GameView gameView) { + super(gameView); + } +} diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesLabe.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesLabe.java new file mode 100644 index 0000000..541e834 --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/LivesLabe.java @@ -0,0 +1,18 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + +/** + * The label for the remaining lives count. + */ +public class LivesLabe extends GameObject{ + + /** + * Create a lives label with default values. + * + * @param gameView the gameView + */ + protected LivesLabe(GameView gameView) { + super(gameView); + } +} diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Spielfigur.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Player.java similarity index 88% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Spielfigur.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Player.java index e785341..2aa739a 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Spielfigur.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Player.java @@ -1,20 +1,20 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; +import de.thdeg.greiner.superpangworld.gameview.GameView; import java.awt.*; /** * The game character controlled by the player. */ -public class Spielfigur extends GameObject{ +public class Player extends GameObject{ /** Flag, if the player is shooting */ private boolean shooting; /** Debug flag, to display X and O or the real image */ - private static boolean SHOW_X = false; + private static final boolean SHOW_X = false; /** The pixel art of the character */ - private static String SPIELFIGUR = + private static final String SPIELFIGUR = " kkk \n"+ " BBBBk \n"+ " BBBBBB \n"+ @@ -37,7 +37,7 @@ public class Spielfigur extends GameObject{ * Create the game character with default values * @param gameView the {@link GameView} to display the character */ - public Spielfigur(GameView gameView){ + public Player(GameView gameView){ super(gameView); position.setTo(GameView.WIDTH/2, GameView.HEIGHT/2); shooting = false; diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Position.java similarity index 97% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Position.java index cc61728..d8c5d9b 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/Position.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/Position.java @@ -1,4 +1,4 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; /** * Die Position eines Objekts auf einem Fenster anhand zweidimensionaler Koordinaten. diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/RoundBubble.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/RoundBubble.java new file mode 100644 index 0000000..6e46eca --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/RoundBubble.java @@ -0,0 +1,19 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + + +/** + * The classic red, round bubble. + */ +public class RoundBubble extends Bubble{ + + /** + * Create a round bubble with default values. + * + * @param gameView the {@link GameView} to display the bubble + */ + public RoundBubble(GameView gameView) { + super(gameView); + } +} diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/ScoreLabel.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/ScoreLabel.java similarity index 88% rename from SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/ScoreLabel.java rename to SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/ScoreLabel.java index b6c39af..0044269 100644 --- a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/objects/ScoreLabel.java +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/ScoreLabel.java @@ -1,6 +1,6 @@ -package de.thdeg.greiner.superpangworld.objects; +package de.thdeg.greiner.superpangworld.graphics; -import de.thdeg.greiner.superpangworld.game.GameView; +import de.thdeg.greiner.superpangworld.gameview.GameView; import java.awt.*; diff --git a/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/SpecialBubble.java b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/SpecialBubble.java new file mode 100644 index 0000000..8397f96 --- /dev/null +++ b/SuperPangWorld/src/de/thdeg/greiner/superpangworld/graphics/SpecialBubble.java @@ -0,0 +1,18 @@ +package de.thdeg.greiner.superpangworld.graphics; + +import de.thdeg.greiner.superpangworld.gameview.GameView; + +/** + * The green bubble with special abilities. + */ +public class SpecialBubble extends Bubble{ + + /** + * Create a special bubble with default values. + * + * @param gameView the {@link GameView} to display the bubble + */ + public SpecialBubble(GameView gameView) { + super(gameView); + } +}