Zeichen um String Fett zu drawen?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zeichen um String Fett zu drawen?

    Hi Leute!
    Gibt es ein Zeichen mit dem man in einem String Fett schreiben kann?
    Also so z.b.:

    GML-Quellcode

    1. str = "Das Fett soll Fett geschrieben werden"
    2. str = "Das [F]Fett[/F] soll [F]Fett[/F] geschrieben werden"

    Hier soll jetzt z.b. alles Fett Geschrieben werden was zwischen [F] und [/F] steht.
    Gibt es ein zeichen für soetwas(sowie #)?

    Ich weiß man kann das auch machen indem man die einzelnden Strings Fett schreibt,
    aber für mein Spiel ist das einfach viel zu umständlich.
    Twitter: @BytingGames
  • Leider ist der Game Maker nunmal kein html-interpreter. Das musst du wohl oder übel manuell machen, also fettgedruckdckte ABschnitte separat mit anderem Font drawen... (oder per vorgefertigten Skripten. Die sind meist aber nicht sonderlich performant).

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • GML-Quellcode

    1. var xx,yy,str,b,i,w;
    2. xx = argument0;
    3. yy = argument1;
    4. str = argument2;
    5. b = 0; //0 = normal; 1 = fett;
    6. i = 0;
    7. w = 0;
    8. draw_set_font(fnt_normal);
    9. for (i=1;i<=string_length(str);i+=1) {
    10. if (string_char_at(str,i) == "~") { //normal oder fett
    11. if (b == 1) {
    12. b = 0;
    13. draw_set_font(fnt_normal);
    14. } else {
    15. b = 1;
    16. draw_set_font(fnt_bold);
    17. }
    18. }
    19. if (string_char_at(str,i) != "~") { //schreiben
    20. draw_text(xx+w,yy,string_char_at(str,i));
    21. w += string_width(string_char_at(str,i));
    22. }
    23. }
    Alles anzeigen

    ich habe ein ähnliches Skript in meiner Facharbeit verwendet. Nur konnte meines Exponenten, Indizes, Brüche und griechische Buchstaben zeichnen. ich habe das mal etwas abgespeckt.

    Du benötigst zwei Schriftarten (einmal fett und einmal normal (fnt_normal und fnt_bold)). das Skript nennst du z.b. scr_draw_text(x,y,string) und du kannst es wie das normale draw_text verwenden. Statt [F] und [/F] verwendest du einfach dieses Zeichen ~. Du kannst natürlich auch ein anderes zeichen nehmen, wichtig ist jedoch das es eineeinzelnes Zeichen ist und keine zeichenfolge.
  • Das müsste funktionieren:

    GML-Quellcode

    1. var xx,yy,str,b,i,w,z;
    2. xx = argument0;
    3. yy = argument1;
    4. str = argument2;
    5. b = 0; //0 = normal; 1 = fett;
    6. i = 0;
    7. w = 0;
    8. z = 0; //Zeile
    9. draw_set_font(fnt_normal);
    10. for (i=1;i<=string_length(str);i+=1) {
    11. if (string_char_at(str,i) == "~") { //normal oder fett
    12. if (b == 1) {
    13. b = 0;
    14. draw_set_font(fnt_normal);
    15. } else {
    16. b = 1;
    17. draw_set_font(fnt_bold);
    18. }
    19. }
    20. if (string_char_at(str,i) == "#") { //neue Zeile
    21. z += 1;
    22. w = 0;
    23. }
    24. if (string_char_at(str,i) != "~") && (string_char_at(str,i) != "#") { //schreiben
    25. draw_text(xx+w,yy+z*string_height("A"),string_char_at(str,i));
    26. w += string_width(string_char_at(str,i));
    27. }
    28. }
    Alles anzeigen