Text-Ausgabe für Textadventure - Organisation

theqwe

Aktives Mitglied
Hallo zusammen,

ich habe vor mein erstes Textadventure im Krimi Style zu schreiben. Das Grundgerüst steht soweit und es funktioniert auch sehr gut. Jetzt möchte ich mich an die Texte machen, habe aber da eine Frage zur Organisation.

Da ich nicht alles in eine Klasse packen möchte, habe ich eine Klasse mit dem Namen "Texte" erstellt und darin ein Array mit verschiedenen Texten:

Java:
String[] texte = new String[100];
texte[0] = "Hallo und Willkommen";
texte[1] = "Dies ist ein Textadventure";
...
texte[50] = "Du befindest dich im Foyer. Wohin möchtest du?";

Das ganze wird durch eine Methode in der Hauptklasse geschrieben als Art Erzähler / Schreibmaschine:

Java:
for(int i = 0; i < texte.length; i++) {
    System.out.print(texte.charAt(i));
    Thread.sleep(30);
}

Jetzt weiß ich aber nicht, wie ich die Texte aus der Klasse in die Methode bekomme. Ich habe es schon mit Instanzen versucht, aber das funktioniert irgendwie nicht. Jemand eine Idee?

Danke im Voraus 😉
 
Mit Datein habe ich noch nicht gearbeitet. Wäre das denn so unterschiedlich gegenüber einem Array?

Ich habe es jetzt nach langen probieren hinbekommen, bin aber gerne weiter für Anregungen und Performance Ideen offen.
 
Kannst Du uns etwas mehr über das Objektmodell erwählen? Oder gibt es da noch nichts näheres?

Objektorientierte Entwicklung setzt einfach eine Menge Objekte zusammen. Und diese Objekte speichern einen Zustand und haben ein Verhalten. Einfach nur eine Klasse Texte macht irgendwie keinen Sinn oder ich sehe diesen im Augenblick nicht. (Bzw. das klingt im Augenblick etwas Richtung Modulbasierte Entwicklung, wenn man eine Applikation in eine Art Bereiche aufteilt. Also das, was man z.B. früher in C gemacht hat. Bitte nicht mit den Modulen von Java 9 verwechseln.)

Wie setzt sich denn Dein Spiel zusammen? Was für Objekte soll es da denn geben? So wie das jetzt etwas klingt, soll es doch sowas geben wie:
- Räume. Der Spieler ist in einem Raum, bekommt eine Beschreibung und kann dann ggf. in angrenzende Räume gehen.
- Spieler. Ein Spieler hat gewisse Eigenschaften, befindet sich in einem Raum, kann ggf. Dinge tragen, ...
- Gegenstände
- ...

Und dann gehören z.B. die Texte an die entsprechenden Orte. Das kann in einem Raum die Beschreibung des Raumes sein. Oder in der Spielsteuerung der Text, den der Spieler angezeigt bekommt. Oder es können Befehle sein, die der Spieler eingeben kann, oder oder oder ....

Ich hoffe, es wurde etwas verständlich, worauf ich hinaus will. Ehe man irgendwelchen Code schreibt, sollte man einen Überblick haben, was es für Objekte es geben soll und wie diese miteinander agieren.
 
Dann bleib erstmal bei einem Array.
Beschreibe doch bitte, wie dein Abenteuer startet und welches Ziel als Erstes erreicht werden muss, um zum ersten großen Ereignis zu kommen.
Mein Adventure erklärt am Anfang an der "Erzähler Methode" kurz wie es abläuft. Danach wird das Programm Vorbereitet mit Spielernamen, Alter, Inventar und noch paar anderen kleinen Sachen. Danach startet dann die Geschichte. Es ist halt nicht wie viele es machen sowas mit Dungeon. Es wird mehr eine Komödie, in dem man auch in verschiedene Räumen kann und auch Personen ansprechen kann. Das alles soll halt in einer Textdatei je nach Kapitel geladen werden.

@JustNobody
Mein Projekt besteht aus folgenden Klassen: Hauptprogramm, Spieler, Funktionen (Textschreiber, Lade-speicherfunktionen und paar andere), Spieler, Hintergrundmusik, Inventar und Befehle. Entscheidungen werden in Variablen in der Spieler-Klasse gespeichert.
Wie oben erwähnt ähnelt es den üblichen Dungeon Textadventure. Nur das es mehr eine Geschichte ist, wo vieles schon vorgegeben ist. Z.b. Unterhaltungen mit Personen. Also spawnt auch nicht irgendwas. Aber der Spieler interagiert halt mit der Spielwelt, indem er Sachen sammeln kann und das Auswirkungen auf die Geschichte hat.
Die Erzählungen und Dialoge hatte ich vor in eine Sprachdatei zu packen. Sonstige Eingaben, wie Befehle und deren Hinweise sind in den geweiligen Klassen mit drin.
 

Neue Themen


Zurück
Oben