String in eine Box (keine Messagebox) reinschreiben

  • GM 7
  • String in eine Box (keine Messagebox) reinschreiben

    Hallo,
    da komm ich mal wieder mit einer Frage und zwar:

    Ich will irgendwo belibig im Raum eine kleine input-box setzen,
    wodurch der dort angegebene Text zur einer Variable wird,
    die auch irgendwo angezeigt wird..

    Wie macht man das, ich kenn nur diese Messageboxes,
    die man aber doch ersteinmal öffnen muss, ich will das man sofort ohne
    weiteres den Text reinschreiben kann und sich dabei auch gleichzeitig meine var ändert.

    Wie mache ich das?
    Danke im Vorraus.
  • Musst dir eine 'Messagebox' drawen (draw_rectangle usw) oder als Sprite erstellen. Dann:

    GML-Quellcode

    1. //Mouse press event:
    2. tippen = true;
    3. str = '';
    4. keyboard_string = ''; /*ich geh mal davon aus, dass du was reintippen willst, nachdem du auf die Box geklickt hast, wenn sie nicht als Sprite gezeichnet wird dann braucht sie eine Mask */
    5. //Step event:
    6. if tippen str = keyboard_string;
    7. //Draw event:
    8. draw_text(x,y,str) //x und y musst du natürlich anpassen
  • GML-Quellcode

    1. keyboard_string //String, der die maximal 1024 zuletzt getippten Zeichen enthält. Diese Zeichenkette beinhaltet nur druckbare Zeichen. Ferner reagiert er korrekt auf das Drücken der "Backspace" - Taste, indem das letze Zeichen gelöscht wird.


    wird alle deine fragen beantworten

    MfG SDX
  • also, du willst den wert von x drawen, richtig?

    draw_text(10,10,"x") ist total falsch

    draw_text(10,10,str) funtz, drawt aber nicht x

    str ist ne variable, x doch auch! Wie wäre es also mit
    draw_text(10,10,x) drawt den wert von x

    nun gibt es verschidene typen von variablen...
    Der gm hat 2, strings und reals. Also texte und zahlen - zu deutsch. x ist ein real, da du aber nur strings drawen kannst, must du x umwandeln, zu einem string. Das macht man mit der funktion string(x).

    also: draw_text(10,10,string(x));

    so einfach >.>

    und genau so macht man das auch andersrum:
    str='123';
    str ist jetzt ein string, weil da '' rum ist. Es wäre ein real wenn ich es ohne schreiben würde.
    Wenn du nachträglich ein string zu einem real umwandeln willst, muss du real(str) benutzen.

    MfG SDX
  • Benutzer online 1

    1 Besucher