Mit GameMaker Studio2 Ubuntu sind die Tasten ö,ä,ü und ß wirkungslos.

    Mit GameMaker Studio2 Ubuntu sind die Tasten ö,ä,ü und ß wirkungslos.

    Hallo Experten!

    Mit GameMaker Studio2 Ubuntu sind die Tasten ö,ä,ü und ß wirkungslos.

    Weder mit draw_keyboard_string noch mit get_string können getippte Umlaute dargestellt werden. Es scheint als würden die Tasten nicht existieren, so wie bei der englischen Tastatur.

    Von YoYo Games bekam ich folgende Antwort:

    It should be simply a case of:

    - Include the TTF file as an included file with the game

    - Use font_add() and store the return in a global variable

    - Write strings as you would normally for the language using the global font

    Damit komme ich aber nicht zurecht.

    Auf meiner Homepage hubert-burboeck.at/projekte.html

    habe ich das Problem genauer beschrieben und ein Demoprogramm für Web und Ubuntu platziert.

    Hat jemand eine Idee, wie ich das bewerkstelligen kann?

    Mit freundlichen Grüßen

    Hubsl

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

    Inwiefern kommst du mit dem Lösungsvorschlag von YoYo nicht zurecht? Weißt du nicht wie genau du das umsetzt oder funktioniert es trotzdem nicht?
    Es scheint als hätte der Standardfont in Ubuntu selbst keine Umlaute integriert. Da fonts als sprites in der TexturePage gespeichert werden, wenn man eigene Fonts nutzt, sollte ein CustomFont (Auch über die IDE statt Code importiert) eigentlich OS unabhängig sein. Musst nur die die Umlaute mitintegrieren (Range 32-255). Standardmäßig werden sie ja auch unter Windows nicht angezeigt, da fürs englische die ASCII Zeichen von 32-127 ausreichen.
    Genau gesagt, weiß ich nicht, wie ich das umsetzen kann. Ich habe versucht eine TTF zu inkludieren, was auch funktioniert, nur bringe ich diese beim besten Willen nicht auf den Bildschirm.
    Ich habe keine Ahnung wie ich mit
    - Use font_add() and store the return in a global variable

    - Write strings as you would normally for the language using the global font
    umgehen kann.

    Im Font Menü habe ich die ASCII Zeichen auf 255 eingestellt.
    Das selbe Problem mit den Umlauten gibt es auch bei den Browsergames, dort werden zwar mit get_string bei jedem Browser die Umlauttasten richtig interpretiert, jedoch bei draw_keyboard_string werden mit den Umlaut-Tasten bei jedem Browser andere Zeichen angezeigt.
    Hier mein Script:


    ///Draw Umlaute füe Ubuntu///
    draw_set_color( c_black );
    draw_set_font( font1 );
    draw_set_halign( fa_left );
    draw_text(50,250,"Diese Tasten reagieren bei Ubuntu nicht!");
    draw_text(50,300,"Aktuelle Software: GM-Studio 2 IDE v2.1.0.212, Runtime v2.1.0.136");
    draw_text(50,210,"Letzte gedrückte Taste Nr.: " + string(keyboard_lastkey));
    draw_sprite(sprite0,-1,40,118)
    draw_set_font( font0 );//eigeneTTF
    draw_text(50,0,"Tippe die Tasten\n'ö', 'ä', 'ü', '+' und 'ß'");
    draw_set_color( c_blue );
    keyboard_string = string_copy(keyboard_string,1,20);//Zeichen begrenzen
    keyboard_string=string_replace_all(keyboard_string,"#","")//Zeilenumbruch verhindern
    draw_text(50,120,keyboard_string + "|");//Tasteneingabe anzeigen

    In der Windows-Version wird jede Schriftart, welche ich in den Font-Einstellungen eingebe, auch richtig angezeigt!!!
    Das Problem liegt also meiner Ansicht nach nicht beim Font.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „hubsl“ ()

    Probier das damit in einem createevent:

    GML-Quellcode

    1. globalvar newfont; //Damit du den font objektübergreifend nutzen kannst
    2. newfont = font_add( 'dein_font.ttf', 24, false, false, 32, 255);


    Und wenn du text drawen willst:

    GML-Quellcode

    1. draw_set_font(newfont);
    2. draw_text(50,210,"Letzte gedrückte Taste Nr.: " + string(keyboard_lastkey));
    Danke für deine Bemühungen.
    Damit wird bei mir leider gar nichts angezeigt. Habe auch probiert mit

    GML-Quellcode

    1. global.newfont = font_add("sch950.ttf",24,false,false,32,255);

    Wird auch nichts angezeigt.
    Wie schon erwähnt, bei Windows gibt es keine Probleme, da kann ich jeden x-beliebigen Font drawen.
    werde weitersuchen.

    Noch etwas:
    Es gibt ja sehr viele verschiedene fonts, welche man gratis downloaden kann. Installiert man diese am PC mit welchem GM programmiert wird, so scheint diese automatisch unter Select Font in der Liste auf und kann ausgewählt werden.

    Mein Problem mit den Umlauten in den verschiedenen Browsern und bei Ubuntu ist damit aber nicht zu lösen.
    MfG. Hubsl

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „hubsl“ ()

    Ein Beispiel habe ich ohnehin schon bei meiner Ersten Frage an YoYo mitgesandt.
    hier die komplette Antwort:
    Hello,As with what I said in the previous ticket.It should be simply a case of:- Include the TTF file as an included file with the game- Use font_add() and store the return in a global variable- Write strings as you would normally for the language using the global fontFonts loaded this way can render glyphs on-demand, so make it ideal for foreign languages (I've seen people use font_add in this way to render Chinese correctly, for example).Please note that if you include a ttf font with a game, you must have a licence for that font otherwise you could get into trouble.Kind Regards,RichardYoYo Games Customer Support TechnicianRemember to read our Help Center Articles, or feel free to ask/help out on the forums.

    auf meine Frage:
    Hubert BurböckSep 20, 19:43 BSTHallo!Mit GameMaker Studio2 Ubuntu sind die Tasten ö,ä,ü und ß wirkungslos. Weder mit draw_keyboard_string noch mit get_string können Umlaute dargestellt werden.Bitte geben Sie mir einen Tip, wie ich das bewerkstelligen kann. Ich benötige diese Funktionen notwendig für das Programmieren von Lernsoftware.Auf meiner Homepagehttp://www.hubert-burboeck.at/projekte.htmlhabe ich ein Demoprogramm für Web und Ubuntu platziert.Mit freundlichen GrüßenHubert Burböck------------------Eingereicht von: help.yoyogames.com/hc/en-us/co…ent(s)schreibeUmlaute.zip
    Wenn alle stricke reißen, dann einen Spritefont verwenden. Das ist ein sprite indem jeder Buchstabe ein subimage ist.
    Siehe "font_add_sprite" in der Hilfe.

    Kann anschließend wie ein normaler font mit draw_text() verwendet werden.
    Danke für den Tipp. Werde es versuchen, denke aber es wird nichts nützen.
    Mein Problem ist ja nicht das Drawen von vorhandenen fonts oder sprites. Das funktioniert immer und überall einwandfrei.
    Sondern: Es passiert absolut nichts, wenn ich im HTML5-Modus mit dem Firefox-Browser auf die Taste Ä drücke. Es scheint, dass beim kompilieren nur auf die englische Tastatur rücksicht genommen wird. Dort gibt es ja diese Tasten nicht.
    Funktioniert den draw_text(x,y,"ÄÖÜäöü") in Ubuntu/HTML5? Wäre sicher nützlich zu wissen ob das drawen oder das einlesen der Tasten das Problem ist oder beides. Und wenn du das weißt YoYo mitteilen, dass deren Lösung nicht hilft und ggf. dass die Tasten bei get_string nicht berücksichtigt werden.
    Konkret handelt es sich hier um das Problem "Tippe Text mit Umlauten" in verschiedenen Plattformen.

    1. Um getippteTexte an verschiedenen Stellen des Bildschirmes mit bestimmter Schriftgröße und Schriftfarbe anzeigen zu können verwende ich das Skript

    GML-Quellcode

    1. draw_text(x,y,keyboard_string);

    siehe Beispiel auf meiner Homepage:
    hubert-burboeck.at/projekte.html

    2. Da dies mit HTML5 mit jedem Browser anders interpretiert (angezeigt) wird, bleibt mir nur die Möglichkeit mit

    GML-Quellcode

    1. get_string("Schreibe Text","ö,ü,ä,ß");
    Texte einzutippen. Hier gibt es jedoch nur das Standard Popup-Fenster zur Texteingabe. Dies ist aber für meine Anwendungen (Schreibaufgaben für Schüler mit großer Schrift an verschiedenen Stellen des Bildschirmes) nicht brauchbar.

    3. Mit dem Betriebssystem UBUNTU habe ich auch genau diese Probleme, zusätzlich ist hier auch das Tippen von Umlauten mit get_string nicht möglich.

    Sorry, dass ich mich bisher so unklar ausgedrückt habe.
    Mit freundlichen Grüßen
    Hubsl

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

    Dann hat dich wohl der YoYo Support so wie ich falsch verstanden, dass es dir um die Nutzung eines Fonts (mit Umlauten) geht.
    Zu erwähnen dass draw_text(x,y,"äöü") funktioniert, schließt den Font als Ursache schonmal aus.
    Dann hat dich wohl der YoYo Support so wie ich falsch verstanden, dass es dir um die Nutzung eines Fonts (mit Umlauten) geht.
    Zu erwähnen dass draw_text(x,y,"äöü") funktioniert, schließt den Font als Ursache schonmal aus.

    Genau das habe ich aber zu Beginn schon zu formulieren versucht, indem ich schreib
    Mit GameMaker Studio2 Ubuntu sind die Tasten ö,ä,ü und ß wirkungslos.
    Hallo!

    Nun habe ich die Ursache gefunden! :thumbsup: Es ist die Tastatur.
    Verschiedene Browser verwenden unterschiedliche Tastaturen. folglich haben die Umlauttasten immer wieder unterschiedliche oder auch gar keine Funktionen.

    Für Ubuntu habe ich das kurze Demoprogramm so abgeändert, dass mit der Tastatureinstellung Englisch (USA) die Umlaute angezeigt werden.
    Für die verschiedenen Browser muss ich erst die Tastenfunktionen ermitteln.
    Hauptsache es funktioniert.

    Hier das Script meines kurzen Programms für Ubuntu, sollte mal jemand die selben Probleme haben:

    GML-Quellcode

    1. ///Draw Umlaute füe Ubuntu///
    2. draw_set_color( c_black );
    3. draw_set_font( font1 );
    4. draw_set_halign( fa_left );
    5. draw_text(50,250,"Tastatur auf Englisch (USA) umstellen\num Umlaute verwenden zu können.");
    6. draw_text(50,300,"Aktuelle Software: GM-Studio 2 IDE v2.1.0.212, Runtime v2.1.0.136\nFont für Text-Eingabe = Trebuchet MS 32....255.");
    7. draw_text(50,210,"Letzte gedrückte Taste Nr.: " + string(keyboard_lastkey));
    8. draw_sprite(sprite0,-1,40,118)
    9. draw_set_font(font0);
    10. draw_text(50,0,"Tippe auf die Tasten\n ö, ä, ü, und ß");
    11. draw_set_color( c_blue );
    12. keyboard_string = string_copy(keyboard_string,1,20);//Zeichen begrenzen
    13. keyboard_string=string_replace_all(keyboard_string,chr(34),"Ä")
    14. keyboard_string=string_replace_all(keyboard_string,"'","ä")
    15. keyboard_string=string_replace_all(keyboard_string,":","Ö")
    16. keyboard_string=string_replace_all(keyboard_string,";","ö")
    17. keyboard_string=string_replace_all(keyboard_string,"|","'")
    18. keyboard_string=string_replace_all(keyboard_string,"]","+")
    19. keyboard_string=string_replace_all(keyboard_string,"}","*")
    20. keyboard_string=string_replace_all(keyboard_string,"{","Ü")
    21. keyboard_string=string_replace_all(keyboard_string,"[","ü")
    22. keyboard_string=string_replace_all(keyboard_string,"_","?")
    23. keyboard_string=string_replace_all(keyboard_string,"-","ß")
    24. draw_text(50,120,keyboard_string + "|");//Tasteneingabe anzeigen

    Was du da machst ist Symptom- statt Ursachenbekämpfung. Bist du dir sicher dass jeder Ubuntunutzer eine englische Tastatureinstellung nutzt? Ich weiß jetzt immer noch nicht ob das ein Bug im GameMaker selbst ist oder bei deinem Ubuntu nur das englische Tastaturlayout standardmäßig eingestellt ist und sich dieses einfach auf deutsch ändern lässt (was dann mit deinem Workaround nicht mehr kompatibel wäre).
    Vollkommen richtig, ich mache Symptombekämpfung. Aber die Ursachenbekämpfung ist hier eindeutig Aufgabe von YoYo Games und dort werde ich immer an ein Forum verwiesen.

    Fakt ist, dass Das Problem die Tastatursprache ist.

    Verwendet man die deutsche Tastatur, so funktioniert Texteingabe mit get_string einwandfrei mit allen Browsern.
    Beim HTML5 zB.: kann man die deutsche Tastatureinstellung mit Mozilla Firefox überhaupt nicht gebrauchen, wenn man eingetippte Umlaute mit draw_text(x,y,keyboard_string) anzeigen will. Hier hat man dann nur die Möglichkeit, auf englische Tastatur umzustellen und alle falsch angezeigten Symbole mit string_replace_all zu korrigieren.

    Mir wäre auch lieber, wenn ein so simples Programm, welches mit Windows und deutscher Tastatur einwandfrei läuft, auch mit anderen Plattformen, ohne Umstellungen auf den Computern funktionieren würde.

    Da ich meine Probleme YoYo immer auf deutsch schildere, kommt es wahrscheinlich dauernd zu Missverständnissen.
    Ich habe es jedenfalls aufgegeben, YoYo zu schreiben. Vielleicht hat jemand von euch die Chance, dieses Problem bei YoYo Games richtig zu melden.

    Danke für eure Bemühungen
    Hubsl

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „hubsl“ ()