Wie erstelle ich ein 4.Level in BlueJ?

1 Antwort

Du kannst doch mehrere Etappen auf der x- oder y-Achse definieren. Zum Beispiel:

Level 2: x > 100
Level 3: x > 200
etc. ...

Sollte deine Figur bei jedem Level in ihrer Position zurückgesetzt werden, orientiere dich zusätzlich an einer Statusvariable, die den aktuellen Level mitzählt.

Bei gleichgroßen Leveln und nur einer Erfolgsachse brauchst du demzufolge nur die Statusvariable inkrementieren, sobald der erwartete Achsenwert überschritten wird.

Bei unterschiedlichen Zielen wäre ein Array gut (Index + 1 = Level, der Elementwert repräsentiert den Zielwert auf der Achse), bei unterschiedlichen Zielen auf unterschiedlichen Achsen (z.B. x und y) könnte man ein Array an Objekten nutzen:

enum LevelAxis { X, Y }

class LevelTarget {
  private final LevelAxis axis;
  private final int targetValue;

  public LevelTarget(final LevelAxis axis, final int targetValue) {
    this.axis = axis;
    this.targetValue = targetValue;
  }

  public LevelAxis getAxis() {
    return axis;
  }

  public int getTargetValue() {
    return targetValue;
  }
}

LevelTarget[] levelTargets = [
  new LevelTarget(LevelAxis.X, 100),
  new LevelTarget(LevelAxis.Y, 50),
  /* ... */
];

// usage example:
int currentLevel = 1;
LevelTarget level1Target = levelTargets[currentLevel];
switch (level1Target.getAxis()) {
  case LevelAxis.X:
    if (playerPosition.getX() > level1Target.getTargetValue()) {
      ++currentLevel;
    }
    break;
  case LevelAxis.Y:
    if (playerPosition.getY() > level1Target.getTargetValue()) {
      ++currentLevel;
    }
    break;
}

Philipp17337 
Beitragsersteller
 05.07.2024, 12:19

danke für die Hilfe

0