Hejho Community!
Da es schon spät ist möchte ich mein Problem so kurz und knapp erklären. Ich habe eine Chat Box in dem Nachrichten ausgegeben werden. Eig. funktioniert alles so wie es ca. funktionieren sollte, leider klappt es aber nicht 100%ig. Ich habe einen String (Bsp: "Dieses Forum hilft mir immer. Die Hilfe finde ich wirklich toll."). Und eine Breite, sagen wir mal 320px. Und jetzt möchte ich den String so oft in eine Line teilen bis es nicht mehr geht. sprich der String soll umknacken. Eig. sollte es kein Problem sein, ABER ich möchte nicht mitten in einem Wort splittem, also falls er im Wort "immer" splitten will, soll das GANZE Wort in die nächste Zeile. Hab das auch schon, aber mein Code ist recht seltsam und klappt auch nicht ganz, da er ab und zu ein Wort splittet das nicht gesplittet gehört. Falls jemand eine Idee hätte wie ich es besser machen könnte, bzw. einen Fehler in meinen Code gefunden hat, wäre ich sehr erfreut über Auskunft.
huch 8o. Fast meinen Code vergessen
Spoiler anzeigen
Alles anzeigen
Kurze Erklärung noch dazu:
line_quantity: Anzahl wie oft gesplittet werden soll
length_max: Maximale Breite einer Line
text: Der zu splittende Text
restlichen Variablen sollten hoffentlich klar sein. Falls nicht, versuche ich sie zu erklären.
MfG Rodrog
Da es schon spät ist möchte ich mein Problem so kurz und knapp erklären. Ich habe eine Chat Box in dem Nachrichten ausgegeben werden. Eig. funktioniert alles so wie es ca. funktionieren sollte, leider klappt es aber nicht 100%ig. Ich habe einen String (Bsp: "Dieses Forum hilft mir immer. Die Hilfe finde ich wirklich toll."). Und eine Breite, sagen wir mal 320px. Und jetzt möchte ich den String so oft in eine Line teilen bis es nicht mehr geht. sprich der String soll umknacken. Eig. sollte es kein Problem sein, ABER ich möchte nicht mitten in einem Wort splittem, also falls er im Wort "immer" splitten will, soll das GANZE Wort in die nächste Zeile. Hab das auch schon, aber mein Code ist recht seltsam und klappt auch nicht ganz, da er ab und zu ein Wort splittet das nicht gesplittet gehört. Falls jemand eine Idee hätte wie ich es besser machen könnte, bzw. einen Fehler in meinen Code gefunden hat, wäre ich sehr erfreut über Auskunft.
huch 8o. Fast meinen Code vergessen
GML-Quellcode
- buffer = "";
- line_counter = 0;
- for(line_counter = 0;line_counter < line_quantity;line_counter+=1) {
- line = "";
- while(string_width(line) < length_max) {
- if(string_length(buffer) == string_length(text)) {
- break;
- } else {
- line += string_char_at(text,string_length(buffer)+1);
- buffer+=" ";
- }
- }
- char = string_char_at(text,string_length(buffer)+1);
- char = ord(char);
- if((char >= ord("a") && char <= ord("z")) || (char >= ord("A") && char <= ord("Z")) || (char >= ord("0") && char <= ord("9"))) {
- length = 0;
- do {
- length += 1;
- c = string_char_at(text,string_length(buffer)-length);
- } until (c == " ");
- buffer = string_delete(buffer,string_length(buffer)-length,length);
- line = string_delete(line,string_length(line)-length,length+1);
- }
- show_message(line);
- }
Kurze Erklärung noch dazu:
line_quantity: Anzahl wie oft gesplittet werden soll
length_max: Maximale Breite einer Line
text: Der zu splittende Text
restlichen Variablen sollten hoffentlich klar sein. Falls nicht, versuche ich sie zu erklären.
MfG Rodrog
Je mehr Käse, desto mehr Löcher.
Je mehr Löcher, desto weniger Käse.
Ergo: Je mehr Käse, desto weniger Käse.
Je mehr Löcher, desto weniger Käse.
Ergo: Je mehr Käse, desto weniger Käse.