Wie Charakterauseahl mit Java programmieren?

...komplette Frage anzeigen

3 Antworten

Du könntest folgendes machen:

Eine abstrakte Klasse: GameCharacter, die die Eigenschaften eines Spielers besitzt.

Danach: zwei Klassen, Werwolf und Vampir, die beide von GameCharacter erben.

Wie die Auswahl dann direkt aussieht: Da gibt es viele Optionen, eine wäre es, dass z.B. wenn die Klasse GameCharacter abstrakt den Namen der Klasse voraussetzt, was in den End-Klassen: Werwolf und Vampir dann implementiert wurde. somit kannst du dann z.B. folgendes machen:

private GameCharacter selectedCharacter;

private void selectCharacter(String character) {
    if ("Werwolf".equalsIgnoreCase(character)) {
        selectedCharacter = new Werwolf();
    }
    ....
}
Antwort bewerten Vielen Dank für Deine Bewertung

Kommt drauf an, was für eine Auswirkung die Charakterwahl im Spiel hat und vor allem von der Art des Spiels.

Die simpelste, aber nicht die sauberste Lösung, die mir einfällt, ist das ganze über einen Boolean zu speichern und an den entsprechenden Stellen if-Anweisungen setzen.

Alternativ: Über ein Interface charakter, und eine Klasse Werwolf und eine für Vampir, die charakter implementieren.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von GoodbyeKitty1
20.01.2016, 01:41

No way, kein boolean - so teuer ist Arbeitsspeicher auch wieder nicht :))))

1
Kommentar von Azasel
20.01.2016, 06:31

Vieleicht mit einer switch(Nummer) {
case(1). Werwolf
case(2). Vampir
}

0
Kommentar von nintendoluk
20.01.2016, 06:40

Das ganze über Klassen (+ Interface) zu realisieren ist auf jeden Fall die schönste Lösung und wird beim Lehrer (falls der Quelcode bewertet wird) wahrscheinlich die bessere Note bringen ;-)

0
Player:
- int x, y, w, h
- AbstractCharacter character
+ jump()
+ walk()
+ attack()
AbstractCharacter:
o String name
o int health
o float speed
o onJump()
o onWalk()
o onAttack()
Werewolf extends AbstractCharacter:
+ Werewolf("Werwolf G\\\\u00fcnther", 100, 3.5f)
o onAttack() {Gegner zurückschlagen}

Eine mögliche Lösung, welche besondere Fähigkeiten der Charaktere berücksichtigt.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?