2d array frage

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

  • 2d array frage

    hallo

    also ich wollte ein script erstellen für mein frage system dazü wollte ich ein 2d array benützen

    normalerweise wäre es ja so:

    GML-Quellcode

    1. frage[0,0] = "Was war das?Ist da Jemand?";


    aber da ich ja über das script direkt mit argümenten arbeiten wollte sollte es ja so sein was aber wiederrüm aüch blöd ist da ich dann ja nicht weiß
    welche frage welche ist...ünd ich dann zählen müss.

    GML-Quellcode

    1. frage[argument0,argument1]="Was war das ist da jemand?" ;


    also wollt ichs anders machen..

    ist es möglich in einer variable zb mit dem namen text mehrere 2d array zü speichern???


    EDIT: ja denk schon so könnt ichs machen

    GML-Quellcode

    1. ​ text = array[argument0,argument1];


    ünd noch dazü natürlich die array liste mit allen fragen ünd antworten


  • hm nein fünktioniert nicht er schreibt wenn ichs so schreibe:

    GML-Quellcode

    1. scr_text(array[0,1],1,mouse_x,mouse_y)

    wrong argüments....5 argüments reqüired obwohl es ja 5 sind.... weil ich ja text = array[argument0,argument1]; geschrieben habe.


    dann hab ichs so probiert ünd dann kam diese fehlermeldüng

    GML-Quellcode

    1. scr_text(0,1,1,mouse_x,mouse_y)

    trying to index a variable which is not an array text = array[argument0,argument1]
  • ja sorry hier:

    GML-Quellcode

    1. //scr_text("Text",speed,x,y)
    2. //scr_text(array[0,0],1,300,300)
    3. txt = instance_create(argument3,argument4,obj_text);
    4. with (txt)
    5. {
    6. padding = 16;
    7. maxlength = view_wview[0];
    8. text = array[argument0,argument1];
    9. spd = argument2;
    10. font = fnt_messagebox;
    11. text_length = string_length(text);
    12. font_size = font_get_size(font);
    13. draw_set_font(font);
    14. text_width = string_width_ext(text,font_size+(font_size/2),maxlength);
    15. text_height= string_height_ext(text,font_size+(font_size/2),maxlength);
    16. boxwidth = text_width +(padding*2);
    17. boxheight= text_height+(padding*2);
    18. //Frage
    19. array[0,0] = "Was war das?Ist da Jemand?";
    20. array[0,1] = "Was war das?Ist da Jemand?";
    21. array[0,2] = "Was war das?Ist da Jemand?";
    22. array[0,3] = "Was war das?Ist da Jemand?";
    23. array[0,4] = "Was war das?Ist da Jemand?";
    24. array[0,5] = "Was war das?Ist da Jemand?";
    25. array[0,6] = "Was war das?Ist da Jemand?";
    26. //Antwort
    27. array[1,0] = "Ach niemand dü hast dich verhört";
    28. array[1,1] = "Der Tod der dich jetzt holen kommt";
    29. array[1,2] = "Tiergeräüsche imitieren!";
    30. array[1,3] = "Was war das?Ist da Jemand?";
    31. array[1,4] = "Was war das?Ist da Jemand?";
    32. array[1,5] = "Was war das?Ist da Jemand?";
    33. array[1,6] = "Was war das?Ist da Jemand?";
    34. }
    Alles anzeigen
  • Also das Einzige, das mir auffällt ist, dass du den Array initialisiert, nachdem du darauf zugreifst. Schien das Befüllen des Arrays mal nach oben, bevor du Text = Array[argument0, argument1] aufrufst. Schau Mal ob das was hilft. Wie gesagt, sonst ist mir spontan nix aufgefallen. LG
  • EDIT: bin schon draüfgekommen...war nür noch ein fehler im objekt thx


    jedoch eine frage noch...wie kann ich die 2d arrays speichern?? also in eine ini datei?
    ünd wie mach ich es das sich der text mit dem player mit bewegt..normal macht man das ja einfach mit obj_player.x ünd y aber das fünktioniert nicht
    weil es nür einmal im step event aüsgeführt wird....ünd dann icht mehr.kann ich das irgendwie anders lösen

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

  • Super, dass du den Fehler gefunden hast.

    Du erstellt ja das Objekt obj_text.argument3 & 4 sind die Position des Players, richtig?
    Du könntest anstelle der Position, einfach die Instanz des Players nutzen und dann das obj_text selbstständig dem Player folgen lassen. Evtl über move_towards(x, y, spd). Du speicherst die Instanz des Players einfach in ner variablen im obj_text ab und nutzt dann z.b. target.x, target.y.

    Ohje.. Speichern von 2d Arrays in ner .ini.. eine .xml Datei wäre glaub ich weitaus einfacher zu handhaben für nen 2d Array.. in der .Ini würde ich für jede Kombination eine section erstellen, in der die beiden Keys z.b. x & y die Werte speichern. Also
    [Section]
    Key_x = 0,
    Key_y = 1,
    Key_value = text

    Genau kann ich dir das allerdings auch nur sagen, wenn ich es selbst ausprobiert hab. Aber hab keine Ahnung, wann ich dazu komme.
  • ok werd es gleich mal versüchen aber wie mach ich das dann ..also ich speichere die arrays in die ini aber wie soll ich das dann über das script aüfrüfen?? weil da müss ich ja dann ini open üsw machen...



    EDIT: habs raüsgefünden aber irgendwie ist das dann alles ümständlicher ich müss dann so machen..das ich im boot raüm die ini erstelle mit allen texten...ünd dann müss ich es so machen

    GML-Quellcode

    1. ini_open("dialog.ini");
    2. array[0,0]= ini_read_string("0","0","");
    3. ini_close();
    4. text = array[argüment0,argüment1];


    zwar ist es teilweise übersichtlicher aber anderseits aüch nicht....da müss es doch ne bessere option geben