Message-Box ohne OK-Button?

  • GM 5

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

  • Message-Box ohne OK-Button?

    Hallo Experten!

    Melde mich wieder einmal mit einem kleinen Problem.

    Ein Text wird in die message-Box geschrieben und mit Klicken auf "OK" wird dieser Text in einer globalen Variablen gespeichert.

    Auch beim Drücken der Enter-Taste passiert das gleiche, nur ertönt ein hier ein sehr störendes "Blim Blim".

    Gibt es eine Möglichkeit diesen Ton wegzuschalten?



    Das Skript für die Message-Box sieht folgendermaßen aus:

    var file, text;
    file = file_text_open_write ("wort.txt"); //die Datei öffnen
    text = get_string("Schreibe das fehlende Wort und drücke die Enter-Taste!",""); //Text einlesen
    file_text_write_string(file,text); //diesen Text in die Datei schreiben
    file_text_close(file);
    file = file_text_open_read("wort.txt"); //Datei öffnen zu Lesen
    text = file_text_read_string(file); // Eine Zeile lesen
    file_text_close(file);
    global.wort = (text);// Diese Variable wird im weiteren Verlauf des Programms ausgewertet.



    Es wäre schön, wenn jemand von euch eine Lösung parat hätte.

    mfg. Hubsl
  • Soweit ich weiß ist daran nichts zu machen. Entweder du schreibst dir eine eigene Messagebox, oder du musst mit diesem Ton leben. Hatte schnell mal in der Hilfe nachgeguckt, aber dort steht auch nichts vom Abschalten des Tons.

    Mfg.,
    Metalknight

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

  • lass doch einfach ein viereck drawn, und davor die Message?
    und dann kannst das ja mit nem timer oder so regeln wie lang die aufscheinen soll.

    Wenn du dann aber nicht willst das währenddessen dein spiel weiterläuft, solltest du (wüsst nich wies anders geht) bei den anderen codes diesen nur ausführen wenn die variable false ist. Die Variable (Wie auch immer du sie nennst) ist dann true, wenn der Bildschirm angezeigt wird. So habs ich gelöst bei meinem Spiel^^
    mfg Salmi
  • Salmi schrieb:

    lass doch einfach ein viereck drawn, und davor die Message?
    und dann kannst das ja mit nem timer oder so regeln wie lang die aufscheinen soll.

    Wenn du dann aber nicht willst das währenddessen dein spiel weiterläuft, solltest du (wüsst nich wies anders geht) bei den anderen codes diesen nur ausführen wenn die variable false ist. Die Variable (Wie auch immer du sie nennst) ist dann true, wenn der Bildschirm angezeigt wird. So habs ich gelöst bei meinem Spiel^^
    Ich denke er möchte es dann so machen das man den Text währendessen eingeben kann (in seinem Code benutzt er get_get_string(), nicht show_message()).
    Das mit der Variable find ich ziemlich . . . komisch. Es geht einfacher wenn man es mit einer Schleife macht, die als Abbruchbedingung hat das der Spieler beispielsweiße Enter drückt, oder den (dann auch selbst erstellten Button) drückt. Mittels sleep(100) am Ende der Schleife kann man auch Verhindern, dass das Spiel sich aufhängt, so reagiert es noch, aber keine anderen Instanzen werden behandelt.
    Das könnte man mit ein Objekt machen, und wenn man dann ein Text ausgeben will, einfach eine Instanz erstellen, und den Text übergeben.
    Die Eingab bei sowas kannst du mit keyboard_string ermöglichen.

    Mfg.,
    Metalknight

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

  • Geschriebenen Text mit keyboard_string auswerten

    Das mit dem keyboard_string habe ich vorher schon gemacht, hat auch super funktioniert.

    Nur hat diese Variante den Nachteil, dass kein Cursor eingeblendet wird und dass man nur mit der Backspsace-Taste das jeweils zuletzt eingetippte Zeichen löschen kann. Außerdem sieht man nicht, wenn mehrmals die Space- oder Raute-Taste gedrückt wurde. Habe diese Tastenfunktionen also beim folgenden Code verhindert.

    Zuerst im Draw folgender Code:

    keyboard_string
    = string_copy(keyboard_string,1,15);//Zeichen begrenzen

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

    keyboard_string
    =string_replace(keyboard_string," ","");//Tasteneingabe verhindern

    draw_text
    (x,y,keyboard_string);//Tasteneingabe anzeigen



    und beim Drücken der Enter_Taste folgender Code:

    if
    keyboard_string = global.text instance_create(20,600,richtig)//Das geschriebene Wort mit einem Text in einer Variablen vergleichen
    [b]
    [/b]


    [b]Wenn es eine Möglichkeit gäbe, bei dieser Methode einen Schreibcursor einzublenden und auch mit den Pfeiltasten zwischen den bereits geschriebenen Buchstaben hin und her zu wechseln, so würde ich liebend gerne wieder zu dieser Methode zurückgreifen.
    Hubsl
    [/b]

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

  • Da das Thema immer noch nicht gelöst ist, gehe ich mal stark davon aus, dass du nicht genau weißt wie du das anstellen kannst.
    Ich hab mal auf die schnelle was zusammengebaut, nicht perfekt und auch noch bissle buggy, aber als kleiner Start vielleicht ansehendswert.

    P.S.: Keine Ahnung ob es GM 5 kompatibel ist, habe nur den 7 und 8er

    Mfg.,
    Mokuyobi
    Dateien
    木曜日 (Mokuyōbi)
  • Das mit der Variable find ich ziemlich . . . komisch. Es geht einfacher
    Das will ich hier jetzt nich so im Raum stehen lassen ;)
    Ich weiß das es einfacher geht, aber es sei auch gesagt, das ich bei meinen spielen immer sehr wenig objekte verwende (bei meinem Aktuellen Projekt "Robot" hab ich grad mal 10 Objekte - und 100 Sprites verwende ich im moment ) und man muss das auch nicht bei jedem objekt abfragen :)
    mfg Salmi
  • Benutzer online 1

    1 Besucher