Wie erstelle ich ein 4.Level in BlueJ?
Ich habe bereits 3 Level einmal muss meine Figur einen x-Wert überschreiten um ins nächste Level zu kommen und einmal muss er einen bestimmten y-Wert überschreiten aber jetzt gehen mir die Achsen aus und ich weiß nicht was ich machen soll.
Muss ich eine neue Klasse erstellen oder ist es was ganz anderes?
1 Antwort
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
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;
}
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)