Ich habe vor einiger Zeit zur Übung für OOP ein "kleines" Rollenspiel geschrieben.
Dieses lief über angepasste Dialogfelder mit verschiedenen Buttons. In der Main waren dazu alle Menüstrukturen und Hauptfunktionen durch Schleifen und Bedingungen miteinader verbunden.
In eigene Klassen habe ich Gegenstände von verschiedenen Typen, Spielerklassen und die Mob's gepackt.
Das Spiel lief soweit einwandfrei Fehler habe ich über die Zeit hinweg durch Exceptions ausgeschlossen.
Nun habe ich mich etwas mit GUI's befasst und wollte mein Spiel in ein GUI Fenster einbetten, welches sich durch die Hauptfunktionen des Spiels anpasst.
Dazu wollte ich die einzelnen Schritte der Main wie Shop, Charakterinformationen oder Dungeonauswahl in eigene Methoden der Main packen. In jeder Methode will ich nun die ActionListener der 4 Butttons meiner GUI neu beschreiben und sie die nächte Methode ausführen lassen.
Leider hängt sich mein Programm sofort komplett auf, nachdem ich den Button Dungeon im Hauptmenü gedrückt habe.
Ich habe keine Ahnung wieso das passiert und hoffe mir kann hier jemand mit mehr Erfahrung und Wissen meinen Fehler aufzeigen und mir zur Lösung verhelfen kann.
Vielen Dank dafür im Vorraus
mfg Fishmeaker
edit: Wenn mir jemand noch dazu sagen könnte wie ich meinen Code als Code deklariere wäre ich auch sehr dankbar ^^'
Methode Hauptmenue() :
Code (Java):
Methode Ebenenauswahl():
Code (Java):
Dieses lief über angepasste Dialogfelder mit verschiedenen Buttons. In der Main waren dazu alle Menüstrukturen und Hauptfunktionen durch Schleifen und Bedingungen miteinader verbunden.
In eigene Klassen habe ich Gegenstände von verschiedenen Typen, Spielerklassen und die Mob's gepackt.
Das Spiel lief soweit einwandfrei Fehler habe ich über die Zeit hinweg durch Exceptions ausgeschlossen.
Nun habe ich mich etwas mit GUI's befasst und wollte mein Spiel in ein GUI Fenster einbetten, welches sich durch die Hauptfunktionen des Spiels anpasst.
Dazu wollte ich die einzelnen Schritte der Main wie Shop, Charakterinformationen oder Dungeonauswahl in eigene Methoden der Main packen. In jeder Methode will ich nun die ActionListener der 4 Butttons meiner GUI neu beschreiben und sie die nächte Methode ausführen lassen.
Leider hängt sich mein Programm sofort komplett auf, nachdem ich den Button Dungeon im Hauptmenü gedrückt habe.
Ich habe keine Ahnung wieso das passiert und hoffe mir kann hier jemand mit mehr Erfahrung und Wissen meinen Fehler aufzeigen und mir zur Lösung verhelfen kann.
Vielen Dank dafür im Vorraus
mfg Fishmeaker
edit: Wenn mir jemand noch dazu sagen könnte wie ich meinen Code als Code deklariere wäre ich auch sehr dankbar ^^'
Methode Hauptmenue() :
Code (Java):
Java:
//Hauptmenü
public static void Hauptmenue() {
Fenster.setzeDialog("Hauptmenü");
Fenster.setzeEnergie(player.energie);
Fenster.setzeGesundheit(player.health);
Fenster.setzeMobGesundheit(0);
Fenster.setzeKnoepfe("Dungeon", "Charakter", "Shop", "Beenden");
Fenster.setzeName(player.name);
Fenster.setzeMob("");
Fenster.setzeKnopfeAktiv(true, true, true, true);
Fenster.knopf1.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
Ebenenauswahl();
}
});
Fenster.knopf2.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
Charakter();
}
});
Fenster.knopf3.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
Shop();
}
});
Fenster.knopf4.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
Beenden();
}
});
}
Methode Ebenenauswahl():
Code (Java):
Java:
//Dungeon
//Ebenenauswahl
public static void Ebenenauswahl() {
Fenster.setzeDialog("Dungeonschwierigkeit");
Fenster.setzeKnoepfe("Leicht", "Mittel", "Schwer", "Endgame");
Fenster.setzeKnopfeAktiv(true, true, false, false); //Später alles true
mobnumber = 1;
herzenLoot = 0;
Fenster.knopf1.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
//Leicht
mobnumber = Zufall(1, 20); //Später 1-20
herzenLoot = 1; //loot herzen des mobs
mob = Monsterzuweisung(mobnumber);
//Weiter mit nächster Methode
}
});
Fenster.knopf2.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
//Mittel
mobnumber = Zufall(21, 40); //später 21-40
herzenLoot = 5; //loot herzen des mobs - später 5
mob = Monsterzuweisung(mobnumber);
//Weiter mit nächster Methode
}
});
Fenster.knopf3.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
//Schwer
mobnumber = Zufall(21, 40); //später 41-60
herzenLoot = 5; //loot herzen des mobs - später ca15
mob = Monsterzuweisung(mobnumber);
//Weiter mit nächster Methode
}
});
Fenster.knopf4.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event) {
//Endgame
mobnumber = Zufall(21, 40); //später 61+
herzenLoot = 5; //loot herzen des mobs später ca15
mob = Monsterzuweisung(mobnumber);
//Weiter mit nächster Methode
}
});
}
Zuletzt bearbeitet von einem Moderator: