HTML5 Umlaute mit draw_text(x,y,keyboard_string) darstellen?

  • HTML5

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

  • HTML5 Umlaute mit draw_text(x,y,keyboard_string) darstellen?

    Hallo Experten!

    Ich lasse in großer Schrift Wörter schreiben und anzeigen. Nun scheint es, dass das Studio beim keyboard_string nur die englische Tastatur kennt.
    Jedenfalls werden die Umlaute nicht richtig dargestellt.

    GML-Quellcode

    1. draw_text(x,y,keyboard_string + '|');//Tasteneingabe mit Cursor anzeigen



    Mit get_string werden die Umlaute zwar geschrieben, jedoch kann ich hier die Schriftgröße nicht verändern.

    GML-Quellcode

    1. global.wort = get_string("Bitte schreibe das gesuchte Wort", "xy");



    Würde mich freuen, wenn jemand von euch eine Idee hätte.

    MfG. hubsl
  • MewX schrieb:

    Du kannst mal dein Glück mit keyboard_lastkey und so versuchen, aber gute Chancen rechne ich dir dabei nicht aus.
    Es werden hier die den Tasten zugeordneten Nummern angezeigt, das ist aber schon alles.
    Scheinbar muss man wirklich YoYo Games darauf aufmerksam machen, das blöde ist nur, dass die von YoYo Games alles in Englisch wollen und meine Englischkenntnisse sehr sehr dürftig sind.
  • Ich habe zwar nicht Game Maker Studio, aber Erfahrung mit HTML. Der Grund, dass deine Umlaute vermutlich anders angezeigt werden als die anderen Buchstaben, oder vielleicht auch gar nicht, mag daran liegen, dass viele Schriftarten gar keine oder nur wenige bestimmte Sonderzeichen haben, und die deutschen Umlaute fallen im englischsprachigen Internet nunmal darunter. Stelle sicher, dass du eine Schrift verwendest, die nicht nur die meisten Leute haben, sondern die auch Umlaute beinhaltet.

    Sollte es allerdings daran liegen, dass der Game Maker einfach im Code selbst innerhalb eines Strings ("Ü") keine Umlaute erkennt, kannst du diese trotzdem über ihren ASCII-Code bekommen. Jedes Zeichen hat eine ASCII-Zahl, auch die Umlaute. Du kannst in Game Maker die Zeichen über ihren ASCII-Code mit der return-Funktion chr(val) bekommen. Dazu tippst du zum Beispiel, um das Wort "Hintertür" zu bekommen, das hier ein:

    GML-Quellcode

    1. draw_text(x,y,"Hintert"+chr(129)+"r");



    Weitere Codes findest du hier: lsa.umich.edu/german/hmr/schre…e/umlaute_ASCII_html.html

    Vielleicht habe ich dir ja geholfen ;)
  • Ich habe keine Ahnung warum, aber im Game Maker sind die Ascii Zeichen nicht an ihrer normalen Position. So gibt chr(129) nicht das Zeichen "ü" aus. Hier mal eine Tabelle welche Werte die Umlaute haben:
    Ä = 196
    ä = 228
    Ö = 214
    ö = 246
    Ü = 220
    ü = 252
  • Ohne studio habe nun natürlich keine Möglichkeit, das auszuprobieren, aber vielleicht geht das:

    :event_draw: Draw Event:

    GML-Quellcode

    1. var drawstring;
    2. drawstring=keyboard_string;string_replace_all(drawstring,"ä",chr(132));string_replace_all(drawstring,"ö",chr(148));string_replace_all(drawstring,"ü",chr(129));string_replace_all(drawstring,"Ä",chr(142));string_replace_all(drawstring,"Ö",chr(153));string_replace_all(drawstring,"Ü",chr(154));
    3. draw_text(room_width/2,room_height/2,drawstring);


    Edit:

    Chris987 schrieb:

    Ich habe keine Ahnung warum, aber im Game Maker sind die Ascii Zeichen nicht an ihrer normalen Position. So gibt chr(129) nicht das Zeichen "ü" aus.
    gut, wenn das so ist, muss der Code eben so aussehen:

    GML-Quellcode

    1. var drawstring;
    2. drawstring=keyboard_string;string_replace_all(drawstring,"ä",chr(228));string_replace_all(drawstring,"ö",chr(256));string_replace_all(drawstring,"ü",chr(242));string_replace_all(drawstring,"Ä",chr(196));string_replace_all(drawstring,"Ö",chr(214));string_replace_all(drawstring,"Ü",chr(220));
    3. draw_text(room_width/2,room_height/2,drawstring);

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zyniker ()

  • jlsnews schrieb:

    Schon die HTML-Umlaute probiert?
    Wie soll den das gehen? Ich habe ja schon erwähnt, dass der Spieler ein Wort mit der Tastatur schreibt und dieses Wort gleichzeitig angezeigt wird.

    GML-Quellcode

    1. draw_text(x,y,keyboard_string + '|');//Tasteneingabe mit Cursor anzeigen

    Natürlich wird das geschriebene Wort danach ausgewertet, das steht aber hier nicht zur Debatte.
  • zyniker schrieb:

    Ohne studio habe nun natürlich keine Möglichkeit, das auszuprobieren, aber vielleicht geht das:

    Draw Event:

    GML

    GML-Quellcode

    1. var drawstring;
    2. drawstring=keyboard_string;
    3. string_replace_all(drawstring,"ä",chr(132));
    4. string_replace_all(drawstring,"ö",chr(148));
    5. string_replace_all(drawstring,"ü",chr(129));
    6. string_replace_all(drawstring,"Ä",chr(142));
    7. string_replace_all(drawstring,"Ö",chr(153));
    8. string_replace_all(drawstring,"Ü",chr(154));
    9. draw_text(room_width/2,room_height/2,drawstring);


    Und jetzt sag mir, was nicht geht?
    :thumbsup:
  • jlsnews schrieb:

    Und jetzt sag mir, was nicht geht?
    Sobald der Spieler einen Umlaut tippt, wird dieser nicht richtig angezeigt, da kannst du programmieren was du willst!
    Das liegt nicht am GML- Script, sondern am GM-Studio HTML5!

    Danke trotzdem für die Mühen.

    MfG. hubsl
  • Werden nur die Umlaute falsch angezeigt oder auch andere Zeichen wie z.B.: "/" oder "€" ?
    Wenn dies der Fall ist, musst Du dein Keymapping der Tastatur umstellen (von US auf DE), das könnte funktionieren.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • levarris07 schrieb:

    Werden nur die Umlaute falsch angezeigt oder auch andere Zeichen wie z.B.: "/" oder "€" ?
    Wenn dies der Fall ist, musst Du dein Keymapping der Tastatur umstellen (von US auf DE), das könnte funktionieren.
    Ja genau, es werden viele Zeichen falsch angezeigt wie z.B.: ß (219) = "[", oder #(191) = "/", +(187) = "=" usw.
    Nur wie soll ich mein Keymapping der Tastatur umstellen, damit ich aber sicher bin, dass Anwender meiner HTML5 Online-Übungen keine Probleme damit haben?
    Außerdem, warum gibt es die Probleme bei

    GML-Quellcode

    1. global.wort = get_string("Schreibe das Wort:", "xxx");
    nicht?
  • levarris07 schrieb:

    Das ist dann wohl eine GMStudio-Kinderkrankheit.

    Genau das habe ich von Anfang an befürchtet. Habe nun einmal die Schreibaufgabe bei meiner Morpheus Online Demo 3 "gegliedertes Schreiben"
    auf get_string umprogrammiert. Es wäre zwar schöner gewesen, mit großen Buchstaben schreiben zu lassen, aber immerhin funktioniert es so.

    Kannst die Übung unter folgender Adresse mal ausprobieren.
    morpheus.lrs-legasthenie.at/pcprogramm.htm


    Es wird bestimmt noch eine Weile dauern, bis von YoYo Games diese Kinderkrankheit beim GMStudio beseitigt wird.


    Hier der Link zur Online-Demo auf meiner Homepage, damit klar wird, was ich gerne hätte:
    members.aon.at/hubert_burboeck/schreibeumlaute.html

    Melde mich wieder, sobald es Neues zu diesem Thema zu berichten gibt.
    MfG. hubsl

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hubsl ()

  • Hallo,

    Hast du einen Font Benutzt der Umlaute darstellt wie(Arial)?

    Ist beim Font die (From Range) richtig unterteilt wie (32 till 255)?

    ansonsten kannst du mit TextureGroup deinen eigenen Font erstellen und Benutzen.

    hoffe das hilft dir!

    lg Calystor
  • Natürlich habe ich die richtigen Fonteinstellungen gemacht (Font0 = Arial, 24, 255).

    Hier eine Kopie meines Mails an YoYo Games und deren Antwort:

    ------------------------------------------------------------------
    Ross Mills (YoYo Games Ltd), Sep 28 10:51 (CEST)
    Hi,
    Unfortunately because of the character set used gamemaker
    can not process these characters but you can decode them into normal characters
    by checking for a special character and changing t e.g.

    var mname;
    mname=argument0
    mname=string_replace_all(mname,"201","ò");
    return mname

    This is done using the ansi code for the characters which
    can be found alanwood.net/demos/ansi.html

    Thanks
    ---------------------------------------------------------------------

    Hubert Burboeck, Sep 27 16:59 (CEST)
    How do I use "draw_text (x, y, keyboard_string),"
    to show signs "ö", "ä", "ü" , "ß" in
    GMStudio HTML5?
    ---------------------------------------------------------------------
    Hier mein GML-Code der kleinen Online Demo (schreibeumlaute.html):

    GML-Quellcode

    1. draw_set_color( c_black );draw_set_font( font0 );draw_set_halign( fa_center );draw_text(320,50,'Schreibe folgenden Satz:##Übe fleißig Rätsel lösen.');draw_set_color( c_blue );keyboard_string = string_copy(keyboard_string,1,25);//Zeichen begrenzen
    2. keyboard_string=string_replace(keyboard_string,"#","");//Tasteneingabe (Zeilenumbruch) verhindern
    3. draw_text(320,250,keyboard_string + '|');//Tasteneingabe anzeigen
    4. global.satz = keyboard_string


    Um einen Zeilenumbruch zu verhindern, habe ich die Zeile

    GML-Quellcode

    1. keyboard_string=string_replace(keyboard_string,"#","");//Tasteneingabe (Zeilenumbruch) verhindern

    jedoch ist das Zeichen "#" in diesem Fall die Taste "Ä", und das kann ich schon gar nicht brauchen.
    Habe alles mögliche durchprobiert, komme jedoch zu keinem Ergebnis.
    Erschwerend kommt noch dazu, dass ich mit dem Englisch nicht sehr bewandert bin.
  • MewX schrieb:

    Ist es nicht einfacher zu sagen, dass keyboard_string außerhalb von normalem ASCII nicht brauchbar ist?
    Ja, so kann man das ganze Thema für GM-Studio HTML5 zusammenfassen.
    Eigentlich schade, dass sehr viele Programmiermöglichkeiten vom GM8 im Studio nicht eingesetzt werden können.
    Andererseits ist es schon eine tolle Sache, wenn man Onlinespiele gestalten kann.