Praktikum 5
This commit is contained in:
		
							parent
							
								
									f8b69c9e16
								
							
						
					
					
						commit
						70d431a32d
					
				@ -1,87 +0,0 @@
 | 
				
			|||||||
package de.thdeg.greiner.superpangworld.game;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
					 | 
				
			||||||
import de.thdeg.greiner.superpangworld.graphics.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.awt.*;
 | 
					 | 
				
			||||||
import java.awt.event.KeyEvent;
 | 
					 | 
				
			||||||
import java.util.Arrays;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** Der Manager zur Verwaltung der Spielschleife. */
 | 
					 | 
				
			||||||
public class GameLoopManager {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static final boolean DIAGONAL_MOVEMENT_ALLOWED = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private GameView gameView;
 | 
					 | 
				
			||||||
    private Bubble bubble;
 | 
					 | 
				
			||||||
    private Harpoon harpoon;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private LevelProgressBar levelProgressBar;
 | 
					 | 
				
			||||||
    private LevelLabel levelLabel;
 | 
					 | 
				
			||||||
    private ScoreLabel scoreLabel;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private Player player;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** 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);
 | 
					 | 
				
			||||||
        this.scoreLabel = new ScoreLabel(gameView);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        this.player = new Player(gameView);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        gameView.setColorForBlockImage('k',Color.LIGHT_GRAY);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /** Startet das Spiel. */
 | 
					 | 
				
			||||||
    public void startGame() {
 | 
					 | 
				
			||||||
        while(true){
 | 
					 | 
				
			||||||
            updateUserInputs();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            bubble.updatePosition();
 | 
					 | 
				
			||||||
            bubble.addToCanvas();
 | 
					 | 
				
			||||||
            harpoon.addToCanvas();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            levelProgressBar.addToCanvas();
 | 
					 | 
				
			||||||
            levelLabel.addToCanvas();
 | 
					 | 
				
			||||||
            scoreLabel.addToCanvas();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            player.addToCanvas();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            gameView.printCanvas();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    void updateUserInputs() {
 | 
					 | 
				
			||||||
        Integer[] gedruekteTasten = gameView.getKeyCodesOfCurrentlyPressedKeys();
 | 
					 | 
				
			||||||
        if(Arrays.stream(gedruekteTasten).anyMatch(k -> k == KeyEvent.VK_SPACE)){
 | 
					 | 
				
			||||||
            player.shoot();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        for (int keyCode : gedruekteTasten) {
 | 
					 | 
				
			||||||
            switch(keyCode) {
 | 
					 | 
				
			||||||
                case KeyEvent.VK_LEFT:
 | 
					 | 
				
			||||||
                    player.left();
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case KeyEvent.VK_RIGHT:
 | 
					 | 
				
			||||||
                    player.right();
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                default:
 | 
					 | 
				
			||||||
                    continue;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            if(!DIAGONAL_MOVEMENT_ALLOWED){
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
package de.thdeg.greiner.superpangworld.game;
 | 
					package de.thdeg.greiner.superpangworld.game;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import de.thdeg.greiner.superpangworld.game.GameLoopManager;
 | 
					import de.thdeg.greiner.superpangworld.managers.GameLoopManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Die Startklasse für das Spiel.
 | 
					 * Die Startklasse für das Spiel.
 | 
				
			||||||
@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					package de.thdeg.greiner.superpangworld.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.managers.GameObjectManager;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.managers.GamePlayManager;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.managers.InputManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** This class manages the main game loop of the game. */
 | 
				
			||||||
 | 
					public class GameLoopManager {
 | 
				
			||||||
 | 
					    private final GameView gameView;
 | 
				
			||||||
 | 
					    private final InputManager inputManager;
 | 
				
			||||||
 | 
					    private final GameObjectManager gameObjectManager;
 | 
				
			||||||
 | 
					    private final GamePlayManager gamePlayManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Creates the main loop.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public GameLoopManager() {
 | 
				
			||||||
 | 
					        this.gameView = new GameView();
 | 
				
			||||||
 | 
					        this.gameView.setWindowTitle("UFO-Fight");
 | 
				
			||||||
 | 
					        this.gameView.setStatusText("Andreas Berl - Java Programmierung SS 2021");
 | 
				
			||||||
 | 
					        this.gameView.setWindowIcon("Target.png");
 | 
				
			||||||
 | 
					        this.gameObjectManager = new GameObjectManager(gameView);
 | 
				
			||||||
 | 
					        this.inputManager = new InputManager(gameView, gameObjectManager.getPlayer());
 | 
				
			||||||
 | 
					        this.gamePlayManager = new GamePlayManager(gameView, gameObjectManager);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Starts the main loop of the game.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void startGame() {
 | 
				
			||||||
 | 
					        while (true) { // The "Game-Loop"
 | 
				
			||||||
 | 
					            gamePlayManager.updateGamePlay();
 | 
				
			||||||
 | 
					            inputManager.updateUserInputs();
 | 
				
			||||||
 | 
					            gameObjectManager.updateGameObjects();
 | 
				
			||||||
 | 
					            gameView.printCanvas();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,86 @@
 | 
				
			|||||||
 | 
					package de.thdeg.greiner.superpangworld.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.graphics.immovable.*;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.graphics.moveable.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.awt.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The manager handling the display and passive movement of the game objects.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class GameObjectManager {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** The GameView to display the objects */
 | 
				
			||||||
 | 
					    private GameView gameView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** The game objects */
 | 
				
			||||||
 | 
					    private RoundBubble roundBubble;
 | 
				
			||||||
 | 
					    private HexagonalBubble hexBubble;
 | 
				
			||||||
 | 
					    private SpecialBubble specialBubble;
 | 
				
			||||||
 | 
					    private Harpoon harpoon;
 | 
				
			||||||
 | 
					    private LevelProgressBar levelProgressBar;
 | 
				
			||||||
 | 
					    private LevelLabel levelLabel;
 | 
				
			||||||
 | 
					    private ScoreLabel scoreLabel;
 | 
				
			||||||
 | 
					    private LivesIcon livesIcon;
 | 
				
			||||||
 | 
					    private Background background;
 | 
				
			||||||
 | 
					    private Player player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Create a manager handling the display and passive movement of the game objects.
 | 
				
			||||||
 | 
					     * @param gameView the GameView
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public GameObjectManager(GameView gameView){
 | 
				
			||||||
 | 
					        this.gameView = gameView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gameView.setColorForBlockImage('k', Color.LIGHT_GRAY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.roundBubble = new RoundBubble(gameView);
 | 
				
			||||||
 | 
					        this.hexBubble = new HexagonalBubble(gameView);
 | 
				
			||||||
 | 
					        this.specialBubble = new SpecialBubble(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.harpoon = new Harpoon(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.levelProgressBar = new LevelProgressBar(gameView);
 | 
				
			||||||
 | 
					        this.levelLabel = new LevelLabel(gameView);
 | 
				
			||||||
 | 
					        this.scoreLabel = new ScoreLabel(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.livesIcon = new LivesIcon(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.background = new Background(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this.player = new Player(gameView);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Add the objects to the canvas and handle update their positions.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void updateGameObjects(){
 | 
				
			||||||
 | 
					        background.addToCanvas();
 | 
				
			||||||
 | 
					        roundBubble.updatePosition();
 | 
				
			||||||
 | 
					        roundBubble.addToCanvas();
 | 
				
			||||||
 | 
					        hexBubble.updatePosition();
 | 
				
			||||||
 | 
					        hexBubble.addToCanvas();
 | 
				
			||||||
 | 
					        specialBubble.updatePosition();
 | 
				
			||||||
 | 
					        specialBubble.addToCanvas();
 | 
				
			||||||
 | 
					        harpoon.updatePosition();
 | 
				
			||||||
 | 
					        harpoon.addToCanvas();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        levelProgressBar.addToCanvas();
 | 
				
			||||||
 | 
					        levelLabel.addToCanvas();
 | 
				
			||||||
 | 
					        scoreLabel.addToCanvas();
 | 
				
			||||||
 | 
					        livesIcon.addToCanvas();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        player.addToCanvas();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Get the player object.
 | 
				
			||||||
 | 
					     * @return the player
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public Player getPlayer(){
 | 
				
			||||||
 | 
					        return player;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					package de.thdeg.greiner.superpangworld.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The manager which handles the gameplay.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class GamePlayManager {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** The GameView on which the game is displayed */
 | 
				
			||||||
 | 
					    private GameView gameView;
 | 
				
			||||||
 | 
					    /** The manager, which handles the game objects */
 | 
				
			||||||
 | 
					    private GameObjectManager gameObjectManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Create the manager handling the gameplay.
 | 
				
			||||||
 | 
					     * @param gameView
 | 
				
			||||||
 | 
					     * @param gameObjectManager
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public GamePlayManager(GameView gameView, GameObjectManager gameObjectManager) {
 | 
				
			||||||
 | 
					        this.gameView = gameView;
 | 
				
			||||||
 | 
					        this.gameObjectManager = gameObjectManager;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Handle the gameplay.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void updateGamePlay(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					package de.thdeg.greiner.superpangworld.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.graphics.moveable.Player;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.awt.event.KeyEvent;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The manager which handles the user input and controls the player object.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class InputManager {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** The gameView, which displays the player object */
 | 
				
			||||||
 | 
					    private GameView gameView;
 | 
				
			||||||
 | 
					    /** The player object */
 | 
				
			||||||
 | 
					    private Player player;
 | 
				
			||||||
 | 
					    /** Flag, if diagonal movement is allowed */
 | 
				
			||||||
 | 
					    private static final boolean DIAGONAL_MOVEMENT_ALLOWED = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Create a manager handling the user input
 | 
				
			||||||
 | 
					     * @param gameView the GameView
 | 
				
			||||||
 | 
					     * @param player the player object
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public InputManager(GameView gameView, Player player){
 | 
				
			||||||
 | 
					        this.gameView = gameView;
 | 
				
			||||||
 | 
					        this.player = player;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Read the user inputs and perform actions accordingly
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void updateUserInputs() {
 | 
				
			||||||
 | 
					        Integer[] gedruekteTasten = gameView.getKeyCodesOfCurrentlyPressedKeys();
 | 
				
			||||||
 | 
					        if(Arrays.stream(gedruekteTasten).anyMatch(k -> k == KeyEvent.VK_SPACE)){
 | 
				
			||||||
 | 
					            player.shoot();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        for (int keyCode : gedruekteTasten) {
 | 
				
			||||||
 | 
					            switch(keyCode) {
 | 
				
			||||||
 | 
					                case KeyEvent.VK_LEFT:
 | 
				
			||||||
 | 
					                    player.left();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                case KeyEvent.VK_RIGHT:
 | 
				
			||||||
 | 
					                    player.right();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                default:
 | 
				
			||||||
 | 
					                    continue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if(!DIAGONAL_MOVEMENT_ALLOWED){
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,18 +0,0 @@
 | 
				
			|||||||
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);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package de.thdeg.greiner.superpangworld.graphics;
 | 
					package de.thdeg.greiner.superpangworld.graphics.base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -7,21 +7,6 @@ import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
public class Bubble extends GameObject {
 | 
					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 */
 | 
					    /** Flag, if the bubble flies from left to right */
 | 
				
			||||||
    private boolean flyFromLeftToRight;
 | 
					    private boolean flyFromLeftToRight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -39,14 +24,6 @@ public class Bubble extends GameObject{
 | 
				
			|||||||
        flyFromLeftToRight = true;
 | 
					        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
 | 
					    @Override
 | 
				
			||||||
    public String toString() {
 | 
					    public String toString() {
 | 
				
			||||||
        return "Bubble:" + getPosition().toString();
 | 
					        return "Bubble:" + getPosition().toString();
 | 
				
			||||||
@ -57,7 +34,7 @@ public class Bubble extends GameObject{
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void updatePosition(){
 | 
					    public void updatePosition(){
 | 
				
			||||||
        if(flyFromLeftToRight && getPosition().x + width >= GameView.WIDTH){
 | 
					        if(flyFromLeftToRight && getPosition().x + (width*size) >= GameView.WIDTH){
 | 
				
			||||||
            flyFromLeftToRight = false;
 | 
					            flyFromLeftToRight = false;
 | 
				
			||||||
        }else if (!flyFromLeftToRight && getPosition().x <= 0){
 | 
					        }else if (!flyFromLeftToRight && getPosition().x <= 0){
 | 
				
			||||||
            flyFromLeftToRight = true;
 | 
					            flyFromLeftToRight = true;
 | 
				
			||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
package de.thdeg.greiner.superpangworld.graphics;
 | 
					package de.thdeg.greiner.superpangworld.graphics.base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import de.thdeg.greiner.superpangworld.managers.GamePlayManager;
 | 
				
			||||||
import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
					import de.thdeg.greiner.superpangworld.gameview.GameView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -21,6 +22,9 @@ class GameObject {
 | 
				
			|||||||
    protected int width;
 | 
					    protected int width;
 | 
				
			||||||
    /** The height of the game object. */
 | 
					    /** The height of the game object. */
 | 
				
			||||||
    protected int height;
 | 
					    protected int height;
 | 
				
			||||||
 | 
					    /** The responsible GamePlayManager */
 | 
				
			||||||
 | 
					    protected GamePlayManager gamePlayManager;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Create a game object with default values.
 | 
					     * Create a game object with default values.
 | 
				
			||||||
@ -45,6 +49,14 @@ class GameObject {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Set the responsible GamePlayManager.
 | 
				
			||||||
 | 
					     * @param gamePlayManager the responsible GamePlayManager
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void setGamePlayManager(GamePlayManager gamePlayManager){
 | 
				
			||||||
 | 
					        this.gamePlayManager = gamePlayManager;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get the position of the game object.
 | 
					     * Get the position of the game object.
 | 
				
			||||||
     * @return the position
 | 
					     * @return the position
 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package de.thdeg.greiner.superpangworld.graphics;
 | 
					package de.thdeg.greiner.superpangworld.graphics.base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Die Position eines Objekts auf einem Fenster anhand zweidimensionaler Koordinaten.
 | 
					 * Die Position eines Objekts auf einem Fenster anhand zweidimensionaler Koordinaten.
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 1.8 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 641 B  | 
							
								
								
									
										
											BIN
										
									
								
								SuperPangWorld/src/resources/hexagon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								SuperPangWorld/src/resources/hexagon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1.9 KiB  | 
		Loading…
	
		Reference in New Issue
	
	Block a user