Hallo, ich möchte ein textbasiertes Rollenspiel nach meinem Geschmack kreieren 
Jedoch möchte ich nicht, dass alles in der Systemkonsole auf eclipse angegeben ist sondern in einem JFrame. Meine Probleme sind:
1. Wie mache ich das so, dass das TextArea nach jedem append eine halbe Sekunde wartet?
2. Wie kann ich einen Scanner für die TextArea erstellen?
3. Wie kann ich das Objekt Klassen in der TexArea aufrufen?
KLASSE Klassen:
Ich weiß, dass System.out.println nicht stimmt.. Aber ich kann ja kein append verwenden^^
KLASSE Story
KLASSE Fenster
Ich würde mich über schnelle und hilfreiche Antworten freuen!
Mit freundlichen Grüßen,
Zitrus
Jedoch möchte ich nicht, dass alles in der Systemkonsole auf eclipse angegeben ist sondern in einem JFrame. Meine Probleme sind:
1. Wie mache ich das so, dass das TextArea nach jedem append eine halbe Sekunde wartet?
2. Wie kann ich einen Scanner für die TextArea erstellen?
3. Wie kann ich das Objekt Klassen in der TexArea aufrufen?
KLASSE Klassen:
Java:
package lastentry;
import java.util.Scanner;
public class Klassen {
static String waffen;
static String klassewaehlen;
static String sicher;
static String[] Zauberspruch;
static int hitpoints;
static int exp;
static int level;
static int mana;
static int Angriffsschaden;
static int Magieschaden;
public Klassen() {
}
public void Klasse() {
klassewaehlen = new Scanner(System.in).nextLine();
if (klassewaehlen.equalsIgnoreCase("Magier")) {
exp = 0;
waffen = "Ast";
hitpoints = 10;
mana = 20;
Angriffsschaden = 1;
Magieschaden = mana;
level = 0;
String[] Zauberspruch = {"Ruf des Windes","Ruf des Feuers"};
if (waffen == "Ast") {
Magieschaden = Magieschaden + 2;
Angriffsschaden = Angriffsschaden + 1;
}
sicher();
}
else if (klassewaehlen.equalsIgnoreCase("Krieger")) {
exp = 0;
waffen = "Knüppel";
hitpoints = 30;
mana = 0;
Angriffsschaden = 10;
Magieschaden = mana;
level = 0;
if (waffen == "Knüppel") {
Angriffsschaden = Angriffsschaden + 2;
}
sicher();
}
else if (klassewaehlen.equalsIgnoreCase("Bogenschuetze")) {
exp = 0;
waffen = "Schleuder";
hitpoints = 20;
mana = 0;
Angriffsschaden = 15;
Magieschaden = mana;
level = 0;
if (waffen == "Schleuder") {
Angriffsschaden += 2;
}
sicher();
}
else if (klassewaehlen.equalsIgnoreCase("help")) {
System.out.println("");
System.out.println("Bogenschuetze: Werde der König des Fernkampfes!");
System.out.println("hitpoints = 20\nAngrifsschaden = 15\nlevel = 0");
System.out.println("");
System.out.println("Magier: Beschwöre mächtige, uralte Zauber die deine Gegner in Schrecken versetzen!");
System.out.println("hitpoints = 10\nMagieschaden = 20\nlevel = 0\nmana = 20");
System.out.println("");
System.out.println("Krieger: Schwinge dein glorreiches Schwert, sodass es dich zum Sieg führt!");
System.out.println("hitpoints = 30\nAngrifsschaden = 10\nlevel = 0");
System.out.println("");
System.out.println("Nun, meine Kraft schwindet! Wähle deinen Pfad!");
Klasse();
}
else {
System.out.println("Auserwählter! Es ist keine Zeit zum Trödeln da!");
Klasse();
}
}
public void levelUp() {
int zufallH = (int)(Math.random() * 5);
int zufallM = (int)(Math.random() * 5);
int zufallMa = (int)(Math.random() * 5);
int zufallA = (int)(Math.random() * 5);
if (klassewaehlen.equalsIgnoreCase("Zauberer") & exp == 300) {
mana += zufallMa;
Magieschaden += zufallM;
hitpoints += zufallH;
}
else if(klassewaehlen.equalsIgnoreCase("Krieger")) {
Angriffsschaden += zufallA;
hitpoints += zufallH;
}
else if(klassewaehlen.equalsIgnoreCase("Bogenschuetze")) {
Angriffsschaden += zufallA;
hitpoints += zufallH;
}
}
public void sicher() {
System.out.println("Bist du dir sicher?");
sicher = new Scanner(System.in).nextLine();
if (sicher.equalsIgnoreCase("Ja")) {
System.out.println("Du hast " + klassewaehlen + " gewählt.\nDein Abenteuer beginnt!");
}
else if (sicher.equalsIgnoreCase("Nein")) {
System.out.println("Bitte wähle deinen Pfad!");
Klasse();
}
else {
System.out.println("Trödele nicht!");
sicher();
}
}
public static String getklasse() {
return klassewaehlen;
}
public static String getWaffe() {
return waffen;
}
}
Ich weiß, dass System.out.println nicht stimmt.. Aber ich kann ja kein append verwenden^^
KLASSE Story
Java:
package lastentry;
import java.util.Scanner;
import javax.swing.JTextArea;
public class Story extends JTextArea {
static String name;
static Klassen k1;
public Story() {
k1 = new Klassen();
setSize(400,300);
setVisible(true);
setEditable(false);
append("Wilkommen bei CrystalShards.");
append("\nMit 'help' rufst du Informationen auf!");
append("");
append("\nWie heißt du?");
//name = new Scanner(System.in).nextLine();
append("Gut, dann fangen wir an!");
append("");
append("\nW-Wo bin ich?!");
append("\nVerborgene Stimme: Habe keine Angst! Sonst wird die Dunkelheit dich verschlingen!");
append("\nW-Wer bist du?!");
append("\nVerborgene Stimme: Meine Zeit ist begrenzt " + name + " bitte nimm meine letzte Kraft!");
append("\nWie, Warum ist deine Zeit begrenzt und wer bist du?!");
append("");
append("\nAuserwählter bitte wähle deinen Pfad!");
//k1.Klasse();
append("");
append("\nWar das ein Traum? Oder die Realität?");
append("\n*Du stehst auf und versucht deine neu 'erworbenen' Fähigkeiten zu testen, jedoch ohne Erfolg*");
}
}
KLASSE Fenster
Java:
package lastentry;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Fenster extends JFrame {
public Fenster() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Crystal_Shards");
setSize(400,300);
setVisible(true);
add(new Story());
}
public static void main(String[] args) {
new Fenster();
}
}
Ich würde mich über schnelle und hilfreiche Antworten freuen!
Mit freundlichen Grüßen,
Zitrus