Hallo, ich bin neu hier im Forum und auch was Java angeht. Ich habe eine kleine Klasse erstellt mit Unterklassen(Game -> SpaceShip(Spieler/Enemy)).
Ich möchte jetzt in der Klasse Game, alle existierenden Objekte der Klasse SpaceShip durchlaufen und gegebenenfalls dieses Objekt löschen.(Lebenspunkte <= 0)
Ich denke es ist relativ leicht zu lösen, leider weiß ich nicht wie. Hier mal mein Bisheriger Code:
Ich weiß nicht, ob das die eleganteste Lösung ist, wie ich das vorhabe.
Danke schonmal im Voraus.
Ich möchte jetzt in der Klasse Game, alle existierenden Objekte der Klasse SpaceShip durchlaufen und gegebenenfalls dieses Objekt löschen.(Lebenspunkte <= 0)
Ich denke es ist relativ leicht zu lösen, leider weiß ich nicht wie. Hier mal mein Bisheriger Code:
Java:
//Class Game.java
package game;
public class Game{
public static void main(String[] args) {
Player player = new Player();
Enemy enemy = new Enemy();
player.setName("Spieler");
player.setHp(1000);
enemy.setName("Gegner");
enemy.setHp(500);
player.showStats();
enemy.showStats();
while(true) {
deleteDeadPlayerAndEnemy();
}
}
static void deleteDeadPlayerAndEnemy() {
//Hier will ich alle Objekte überprüfen und anschließend ein Objekt löschen
//wenn die .getHp() Methode des bestimmten Objektes einen Wert von 0 oder kleiner zurückgibt
}
}
//Class SpaceShip.java
package game;
public class SpaceShip{
private int hp,x,y,speed,damage;
private String name;
public void showStats() {
System.out.println(this.name);
System.out.println("X: " + this.x);
System.out.println("Y: " + this.y);
System.out.println("Speed: " + this.speed);
System.out.println("Damage: " + this.damage);
System.out.println("-----------------------------");
}
public void setX(int x) {
this.x = x;
}
public int getX() {
return this.x;
}
public void setY(int y) {
this.y = y;
}
public int getY() {
return this.y;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public int getSpeed() {
return this.speed;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setHp(int hp) {
this.hp = hp;
}
public int getHp() {
return this.hp;
}
public void setDamage(int damage) {
this.damage = damage;
}
public int getDamage() {
return this.damage;
}
public void moveLeft() {
this.x = this.x - this.speed;
}
public void moveRight() {
this.x = this.x + this.speed;
}
public void moveUp() {
this.y = this.y + this.speed;
}
public void moveDown() {
this.y = this.y - this.speed;
}
public void fightEnemy(Enemy enemy) {
enemy.setHp(enemy.getHp() - this.damage);
System.out.println("Gegner wird Attackiert" + enemy.getHp());
}
public void fightPlayer(Player player) {
player.setHp(player.getHp() - this.damage);
System.out.println("Spieler wird Attackiert" + player.getHp());
}
}
//Class Player.java
package game;
class Player extends SpaceShip{
}
//Class Enemy.java
package game;
class Enemy extends SpaceShip{
}
Ich weiß nicht, ob das die eleganteste Lösung ist, wie ich das vorhabe.
Danke schonmal im Voraus.