Aufgaben 6

This commit is contained in:
Andreas Greiner 2021-04-26 20:12:25 +02:00
parent 973a4e9710
commit dc1f89a176
4 changed files with 53 additions and 25 deletions

View File

@ -1,5 +1,5 @@
<component name="ArtifactManager">
<artifact type="jar" name="Programmieren 2:jar">
<artifact type="jar" build-on-make="true" name="Programmieren 2:jar">
<output-path>$PROJECT_DIR$/out/artifacts/Programmieren_2_jar</output-path>
<root id="archive" name="Programmieren 2.jar">
<element id="module-output" name="Programmieren 2" />

View File

@ -1,10 +1,13 @@
package de.thdeg.greiner.superpangworld.game.managers;
import de.thdeg.greiner.superpangworld.gameview.GameView;
import de.thdeg.greiner.superpangworld.graphics.base.Bubble;
import de.thdeg.greiner.superpangworld.graphics.base.GameObject;
import de.thdeg.greiner.superpangworld.graphics.immovable.*;
import de.thdeg.greiner.superpangworld.graphics.moveable.*;
import java.awt.*;
import java.util.LinkedList;
/**
* The manager handling the display and passive movement of the game objects.
@ -15,10 +18,8 @@ class GameObjectManager {
private GameView gameView;
/** The game objects */
private RoundBubble roundBubble;
private HexagonalBubble hexBubble;
private SpecialBubble specialBubble;
private Harpoon harpoon;
private LinkedList<Bubble> bubbles;
private LinkedList<Harpoon> harpoons;
private LevelProgressBar levelProgressBar;
private LevelLabel levelLabel;
private ScoreLabel scoreLabel;
@ -26,20 +27,25 @@ class GameObjectManager {
private Background background;
private Player player;
private LinkedList<GameObject> gameObjects;
/**
* 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);
bubbles = new LinkedList<>();
harpoons = new LinkedList<>();
gameObjects = new LinkedList<>();
this.harpoon = new Harpoon(gameView);
bubbles.add(new RoundBubble(gameView));
bubbles.add(new HexagonalBubble(gameView));
bubbles.add(new SpecialBubble(gameView));
harpoons.add(new Harpoon(gameView));
this.levelProgressBar = new LevelProgressBar(gameView);
this.levelLabel = new LevelLabel(gameView);
@ -57,22 +63,21 @@ class GameObjectManager {
* 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();
gameObjects.clear();
gameObjects.add(background);
gameObjects.addAll(bubbles);
gameObjects.addAll(harpoons);
gameObjects.add(levelProgressBar);
gameObjects.add(levelLabel);
gameObjects.add(scoreLabel);
gameObjects.add(livesIcon);
gameObjects.add(player);
levelProgressBar.addToCanvas();
levelLabel.addToCanvas();
scoreLabel.addToCanvas();
livesIcon.addToCanvas();
player.addToCanvas();
gameObjects.forEach(gameObject ->{
gameObject.updatePosition();
gameObject.updateStatus();
gameObject.addToCanvas();
});
}
/**
@ -83,4 +88,19 @@ class GameObjectManager {
return player;
}
/**
* Get the bubbles.
* @return the bubbles
*/
public LinkedList<Bubble> getBubbles() {
return bubbles;
}
/**
* Get the harpoons.
* @return the harpoons
*/
public LinkedList<Harpoon> getHarpoons() {
return harpoons;
}
}

View File

@ -49,6 +49,13 @@ public abstract class GameObject {
}
/**
* Updates the game object's status.
*/
public void updateStatus(){
}
/**
* Set the responsible GamePlayManager.
* @param gamePlayManager the responsible GamePlayManager
@ -64,4 +71,5 @@ public abstract class GameObject {
public Position getPosition(){
return position;
}
}