Text Ausgabe in Spielen!

Status
Nicht offen für weitere Antworten.

ToNyXXL

Mitglied
Hi,
ich programmie gerade ein Rollenspiel in Java mit vielen Grafiken und bin gerade dabei den ersten Menschen das sprechen beizubringen ^^
Nur welche Art der Textausgabe empfhielt sich denn nun für son Spiel?
Einfach drawString sollte es nicht sein, da automatische Zeilenumbrüche hinzugefügt werden sollen.
Da kam mir eine JTextArea in den Sinn, aber bei ersten versuchen kams mir so vor, als wenn die sich überhaupt nicht mit den ganzen Grafiken und Threads verträgt (oder es liegt an meiner Unwissenheit, da ich bisher nur mit AWT TextArea's programmiert habe, die man ja aber nicht transparent machen kann).
Mach ich etwas bei den JTextArea's falsch, oder gibt es noch eine bessere Lösung??
Und wo ich schon mal am Fragen bin, wie bind ich eine JTextArea (Scrollbalken nicht erforderlich) so ein, das ich die Postion verschieben kann?? setLayout(null), JTextArea in JPane laden und diesen verschieben?? Hmm bei mir gabs nur Probleme mit den Threads dabei :autsch:

Wäre schön wenn ihr mir mal wieder helfen könntet!
Viele Grüße,
Torben
 

doctus

Bekanntes Mitglied
ich würde mal sagen, du machst dir eine eigene methode, die dann die stelle für den zeilenumbruch errechnet und das ganze dann in mehreren zeilen mit drawString ausgibt.

Lg doctus
 

Apo

Bekanntes Mitglied
kann doctus nur zustimmen
aus dem Graphics Objekt kannst du mithilfe von z.B.
Code:
g.getFontMetrics().stringWidth("dein Ausgabetext");
herausfinden wie lang dein String ist und ihn dann mithilfe von substring oder so cutten usw.
 

ToNyXXL

Mitglied
wow das klingt sehr gut!!
g.getFontMetrics().stringWidth("dein Ausgabetext");
berechnet dann die anzahl der buchstaben im string?
und wie erreich ich, dass der zB nach jedem 100 buchstaben nen zeilenumbruch macht? kann mir das gerade nicht richtig vorstellen? den string vorher in ein array verwandeln oder wie?

oder habt ihr zufällig schon so ne 08/15 zeilenumbruch errechnen methode parat? =)

Aber erstmal danke ^^
Freu mich das ich auf ne JTextArea verzichten kann!!
 

doctus

Bekanntes Mitglied
stringWidth

public int stringWidth(String str)

Returns the total advance width for showing the specified String in this Font. The advance is the distance from the leftmost point to the rightmost point on the string's baseline.

Note that the advance of a String is not necessarily the sum of the advances of its characters.

Parameters:
str - the String to be measured
Returns:
the advance width of the specified String in the Font described by this FontMetrics.

So wie ich das verstehe, bekommst du nicht die Anzahl der Buchstaben, sondern die Breite der Strings zurück.

Lg doctus
 

ToNyXXL

Mitglied
ich hab mir da was überlegt! und zwar schreib ich in den text zB
rein, dann such ich die stelle ausm string raus, wo das drin steht, benutze substring(int beginIndex, int endIndex), und ersetze danach das
wieder? meint ihr das klappt, bzw gibts ne einfachere lösung?
weil auf die sache mit dem automatischen zeilenumbruch nach bestimmt vielen zeichen komm ich irgendwie net, vll hab ich die String Methoden in der java referenz auch nur nicht richtig gedeutet oO
 

ToNyXXL

Mitglied
juhu!
ich habs selber geschafft!
ich zeig euch mal meine lösung, die is zwar noch ziemlich "hässlich" aba naja egal ;P

Code:
            boolean stringende = false;
            int index = 0;
            int anfangsindex = 1;
            int text_height = 300;
            String der_text;
            while(!stringende)
            {
                anfangsindex = index + 1;
                index = text.gibText(feld[map][npc_x_tmp][npc_y_tmp].gibDialog()).indexOf("#", anfangsindex);
                der_text = text.gibText(feld[map][npc_x_tmp][npc_y_tmp].gibDialog()).substring(anfangsindex, index);
                if(der_text.endsWith("+"))
                {
                    stringende = true;
                    break;
                }
                g.drawString(der_text, 250, text_height);   
                text_height = text_height + 20;
            }


und hier ein ausschnit aus meinem text

Code:
text[1] = " Satz #Satz!#... ... ... ... #Satz#Satz#SatzSatz# +#";
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Das Leerzeichen der Tastatur wird nicht gleichgesetzt mit dem Leerzeichen aus der Text Datei Spiele- und Multimedia-Programmierung 5
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
S GUI erstellen für Text Adventure Spiele- und Multimedia-Programmierung 4
T Minecraft Bukkit Plugin Text Datei auslesen Spiele- und Multimedia-Programmierung 1
M LWJGL Text rendern Spiele- und Multimedia-Programmierung 3
Z Anfängerfrage: Text anzeigen mit LWJGL Spiele- und Multimedia-Programmierung 2
A LWJGL/OpenGL und Text Spiele- und Multimedia-Programmierung 8
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
T LWJGL - 2D Text über 3D Hintergrund Spiele- und Multimedia-Programmierung 7
T LWJGL und Text Spiele- und Multimedia-Programmierung 5
B Vorgehensweise: Gegenstände in Text-basiertem Spiel Spiele- und Multimedia-Programmierung 8
F Welchen Platz braucht ein Text? Spiele- und Multimedia-Programmierung 4
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
J Text Anzeige + baum.obj Spiele- und Multimedia-Programmierung 3
G Text perspektivisch verzerren Spiele- und Multimedia-Programmierung 4
C Text in/auf Text2D ändern Spiele- und Multimedia-Programmierung 4
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
H Mausbewegungen wie eine echte Maus in 3 dimensionalen Spielen Spiele- und Multimedia-Programmierung 12
J noch eine Runde spielen? Spiele- und Multimedia-Programmierung 6
A Methoden zur flüssigen Darstellung von Spielen Spiele- und Multimedia-Programmierung 7
V Polygone in PS1 Spielen Spiele- und Multimedia-Programmierung 0
StrikeTom soolte man bei spielen ein interface drawable haben Spiele- und Multimedia-Programmierung 5
O Suche Tutorial zum Aufbau von großen Spielen(mit Multiplayer über Netzwerk...) Spiele- und Multimedia-Programmierung 3
P Soundausgabe in Spielen Spiele- und Multimedia-Programmierung 5

Ähnliche Java Themen

Neue Themen


Oben