brauche hilfe bei text input

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

  • brauche hilfe bei text input

    hallo

    ich habe ein problem und zwar will ich einen text input machen also das der spieler wenn er auf save drückt im menü einen text eingeben kann den ich dann für die save datei verwende.

    das menü ist erstellt aber ich habe probleme mit dem text input...kann mir jemand helfen

    wie erstelle ich einen einfachen text input???
  • in keyboard_string werden alle gedrückten tasten der reihe nach gespeichert. Einfach bevor man den namen eingibt leeren (keyboard_string = ""; ), tippen und dann kannst du dem savenamen den keyboard_string zuweisen.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • danke dir für die antwort aber das hab ich gemacht....also hier mal mein code:


    ich hab im menü ein obj_save in dem die anderen objekte dann alle gelöscht werden also button continue usw

    dann hab ich ein obj_ingamemenu_button
    LEFT PRESSED EVENT

    GML-Quellcode

    1. instance_create(x,y,obj_ingamemenu_input);



    und im obj_ingamemenu_input
    CREATE EVENT

    GML-Quellcode

    1. input_string=-"";



    STEP EVENT

    GML-Quellcode

    1. input_string=keyboard_string;


    DRAW EVENT

    GML-Quellcode

    1. draw_text(x,y,input_string);




    aber das problem ist das er schon alle vorhergedrückten buttons also sobald das spiel gestartet ist und im ersten level ist und dann ins pause menü gehst alle buttons schon drin stehn ..also wenn du den player
    nur kurz nach rechts bewegt hast und ins menü gehst hat er dann schon den buchstaben D dort stehn...was mach ich falsch
  • ok habs schon



    aber noch was...wie kann ich jetzt im anderen menü also im hauptmenü alle savegames auflisten die da sind....falls es welche gibt```??


    mir ist schon klar das ich mit if file_exists blalba ich abrufen kann ob es save games gibt aber wie liste ich alle auf

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

  • mit den file_find_* Funktionen

    GML-Quellcode

    1. ​dateiendung = "*.sav";
    2. files = ds_list_create();
    3. files[| 0] = file_find_first(dateiendung, noone);
    4. while(files[| ds_list_size(files)-1] != "")
    5. files[| ds_list_size(files)] = file_find_next();
    6. file_find_close();
    7. ds_list_delete(files, ds_list_size(files)-1)

    Alle Dateien sind in der ds_list "files"
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • es war so einfach und doch so fern für mich.....lol


    danke dir


    achja ich will ja alle saves auflisten lassen wenn man auf den load button drückt aber wie mache ich das das die einzelnen saves dann in einer schönen box drinnen stehne???

    ich will es mit so nen code wie dem vom husi oben machen also die liste aber wie das mit den boxen gehn kann versteh ich nicht
  • Benutze file_find_first und die anderen dazugehörigen Funktionen (Siehe GML Hilfe) und speichere sie nacheinander in einem Array, was du im Lade-Menü anschließend ausliest und wieder auflisten lässt.
    Mit file_find_first & Co kannst du überprüfen, welche und wieviele Dateien sich in einem Verzeichnis befinden. Arrays sind relativ simpel, wenn du da trotzdem noch Hilfe benötigst, sag einfach bescheid.

    (Husi hat oben ja schon das passende gepostet)
  • @Atomicmaster

    ich habe das nicht mehr mit input_string=keyboard_string+".sav"
    da es immer schon die buchstaben beim starten des spiels aufnimmt und das will ich nicht

    deshalb hab ichjetzt im Create Event einfch keyboard_string=""; jetzt nimmt er die buchstaben erst auf wenn ich auf den button drücke.
    aber wenn ich .sav hinzufüge

    und in dem speicher menü auf speichern drücke und dann auf den button klicke schreibt er sofort .sav und dahinter die buchstaben......



    Also ganz einfach ich hab ein obj_ingamemenu_button und ein obj__button_saveinput

    obj_ingamemenu_button
    Left Pressed EVENT

    GML-Quellcode

    1. instance_create(x,y,obj_ingamemenu_input);



    obj_button_saveinput
    CREATE EVENT

    GML-Quellcode

    1. keyboard_string="";


    DRAW EVENT

    GML-Quellcode

    1. draw_text(x,y,input_string);



    also wie gesagt wenn ich beim keyboard_string das .sav hinzufüge steht es schon vorher da bevor ich was eingebe.
  • Du musst das zum Schluss hinzufügen. Also erst wenn du das abspeicherst
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • danke echt toll jetzt hab ichs verstanden.

    aber eins noch......

    wie mach ich das mit dem raum.....jetzt ist mein ingamemenü kein eigener raum....jedoch will ich lieber einen raum dafür weil es dann leichter mit den sprachen geht....

    also wie mach ich das....

    zb:
    im player objekt
    escape button

    GML-Quellcode

    1. instance_deactivate_all(true);
    2. room_goto(rm_ingamemenu);


    und dann wenn ich auf verlassen drücke im ingame menü wieder

    GML-Quellcode

    1. instance_activate_all(true);
    2. room_goto(?????previous????)



    welchen raum sollte ich da wählen da ich ja mehrere levels habe usw.....

    bitte um hilfe
  • Du könntest room in eine Zwischenvariable speichern, also so:
    global.prev_room = room;
    Das muss dann immer aufgerufen werden, sobald ein neuer Level erreicht wird, also bevor du in den nächsten Raum gelangst. (NICHT im Room Start / Create Event, weil es dort dann immer auf den aktuellen Raum gesetzt wird, was du ja nicht willst).
    Wenn du dann zurück willst, room_goto(global.prev_room)

    Falls deine Räume untereinander aufgelistet sind, also der Reihenfolge nach richtig sind unter "Rooms", kannst du auch einfach room_goto_previous() verwenden
  • Also.. verstehe ich das richtig: Du möchtest für das Speichern ein extra Menü haben, wenn du dort auf Save drückst, soll der andere Raum gespeichert werden, von dem man in das Speicher-Menü kommt und beim Laden möchtest du nicht im Speicher-Menü (selbstverständlich), sondern in diesem Raum zurückgelangen.

    Beim Speichern wird der aktuelle Stand gespeichert, sprich auch der aktuelle Raum. Du könntest zwar in einem anderen Raum gehen mittels Ini-Methoden etc., allerdings würde dann nicht der Stand geladen werden (Weiß nicht was du hast, Leben, Punkte, Position usw). Das Speichern musst du im selben Raum machen.

    Wenn ich dich nicht richtig verstanden habe, würde ich mir das ganze gerne über Team Viewer anschauen, oder du schickst mir das einmal rüber zum Testen
  • Husi012 schrieb:

    mit den file_find_* Funktionen

    GML-Quellcode

    1. dateiendung = "*.sav";
    2. files = ds_list_create();
    3. files[| 0] = file_find_first(dateiendung, noone);
    4. while(files[| ds_list_size(files)-1] != "")
    5. files[| ds_list_size(files)] = file_find_next();
    6. file_find_close();
    7. ds_list_delete(files, ds_list_size(files)-1)

    Alle Dateien sind in der ds_list "files"





    hallo also ich hab es jetzt mit dem probiert aber er listet sie nichts auf....ich will das er alle savedatein auflistet. bitte um hilfe


    EDIT:

    habs jetzt auch mit diesem code probiert

    GML-Quellcode

    1. name = filename_name(file_find_first("C:\User\AppData\Local\MeinSpiel\*.sav", 0));

    dazu noch ein draw_text mit dem string name


    aber es kommt immer ein komischer error:
    ERROR: not allowing save with filename C:\User\AppData\Local\MeinSpiel\*.sav", 0

    aber ich will doch nicht saven ich will die datein ja nur auflisten damit und dann die möglichkeit zum loaden geben.

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

  • also ich hab herausgefunden das ich damit die savegamenamen anzeigen lassen kann:

    GML-Quellcode

    1. text1=filename_name(file_find_first("*.sav", all));
    2. text2=filename_name(file_find_next());
    3. text3=filename_name(file_find_next())
    4. text4=filename_name(file_find_next());
    5. //usw.


    und mit draw_text im draw event zeichnen lasse.aber ich kann es weder anklicken und laden....das mit dem anklicken schaff ich selbst aber das mit dem laden nicht.