Gibt es Data Arrays?

    Gibt es Data Arrays?

    Hi, in anderen Sprachen hat man die Möglichkeit, seine Daten ins Programm einzubinden, also z.B. so in der Art:

    Data.l 23, 40, 12, 67, 88, 29, 10, 4
    Data.s Emma, Paul, Susi, Teller, Haus

    Gibt es diese Möglichkeit auch in GM, hab jetzt schon eine Stunde gesucht, aber nur Buffer gefunden, wo die Daten
    erstens extern gespeichert werden und ich sie auch erst dort anlegen müßte.

    Miradur
    was du suchst sind die ds_ funktionen wie ds_list, oder ds_grid (2dimensional), ds_map etc.
    Lies dich hier einfach mal ein:
    docs.yoyogames.com/source/dadi…ata structures/index.html

    Hier ein Anwendungsbeispiel:

    GML-Quellcode

    1. xylist = ds_list_create(); //erstelle die Liste
    2. repeat(10) //füge 10 zufällige >Zahlen von 1 - 10 hinzu
    3. ds_list_add(xylist,irandom(10)+1);
    4. is_6 = ds_list_find_index(xylist, 6); //suche nach einer 6
    5. if (is_6 >= 0) {
    6. show_debug_message("6 found at index " + string(is6));
    7. }else{
    8. show_debug_message("no 6 found");
    9. }
    10. third_position = ds_list_find_value(xylist, 3); //Gebe den wert des dritten index zurück
    11. show_debug_message(string(thrid_position) + " at index 3");
    12. ds_list_destroy(); //Wenn sie nicht mehr benötigt werden musst du sie wieder löschen sonst entsteht ein memoryleak

    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Rhazul“ ()

    Vielen Dank, für Deine Antwort und natürlich habe ich mich erst in das Thema eingelesen, bevor ich
    meine Frage hier stellte :)
    Mit Zufallszahlen ist das ja noch ganz nett, aber wenn ich jetzt old school 200 vordefinierte Zahlen,
    auf diese Art und Weise eingebe, dann ist das doch sehr unübersichtlich und langwierig, denn bei
    meinen angesprochenen Data Feldern, bräuchte man diese nur reinkopieren, wenn ich diese Zahlen
    mit externen Hilfsmitteln erstellt hätte.
    Was ich so auf Mikes Youtube Kanal gesehen habe, läßt mich vermuten, dass er ebenfalls ein Verfechter,
    von so manchen Kniffen aus vergangenen Tagen ist, sollte es also keine Möglichkeit geben, dann werde
    ich das mal im englischen Forum ansprechen.

    Miradur
    Weiß nicht genau was du meinst, du kannst doch auch aus einer Datei per Schleife ein ds_grid/list bestücken?
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
    @Rhazul: Vielen Dank für Deine Hilfe, aber der Knackpunkt ist eben, dass ich die Daten im Speicher
    eingeben möchte und nicht von extern laden.

    @glim888: Dir ebenfalls ein dickes Danke, aber ich bekomme bei Deinem Code nichts zum laufen.
    Ich bekomme immer den Fehler, dass ein Trennzeichen oder eine Klammer nicht korrekt gesetzt ist.
    Habe allerdings Einzelzuweisungen auskommentiert, da die mir ja nichts bringen und nur mit der
    "a" Zeile funktioniert es nicht.

    In der Zwischenzeit hatte ich viel Zeit zum Nachdenken und vielleicht sollte ich GM so nehmen, wie
    er ist, zeichne ich eben 10.000 Sprites 60x pro Minute, was solls, mein Rechner ist schnell genug und
    ich habe nicht vor, irgend etwas davon zu veröffentlichen, da ich es aus rein persönlicher Freude mache.

    Trotzdem werde ich die angesprochenen Dinge, noch im englischen Forum posten, wenn es auch nicht
    viel bringen wird, aber wenn man gar nichts macht. ändert sich auch nie etwas :)

    Miradur
    Wie willst du das denn sonst Lösen, entweder schreibst du die Werte in eine externe Datei oder eben direkt im Code, aber irgendwie musst du sie festlegen. Hier mal ein Ausschnitt aus meinem Player create:

    GML-Quellcode

    1. mag_size[0] = 0;
    2. ammo_max[0] = 0;
    3. ammo[0] = 0;//ammo_max;
    4. ammo_mag[0] = 0;//mag_size;
    5. reload_time[0] = 0;
    6. shot_delay[0] = 0;
    7. bullet_spread[0] = 0;
    8. mag_size[1] = 18;
    9. ammo_max[1] = 64;
    10. ammo[1] = 0;//ammo_max;
    11. ammo_mag[1] = 0;//mag_size;
    12. reload_time[1] = room_speed*1.5;
    13. shot_delay[1] = 6;
    14. bullet_spread[1] = 1;
    15. mag_size[2] = 48;
    16. ammo_max[2] = 196;
    17. ammo[2] = 0;//ammo_max;
    18. ammo_mag[2] = 0;//mag_size;
    19. reload_time[2] = room_speed*3;
    20. shot_delay[2] = 1;
    21. bullet_spread[2] = 2;
    22. mag_size[3] = 2;
    23. ammo_max[3] = 14;
    24. ammo[3] = 0;//ammo_max;
    25. ammo_mag[3] = 0;//mag_size;
    26. reload_time[3] = room_speed*1.2;
    27. shot_delay[3] = 16;
    28. bullet_spread[3] = 14;
    29. mag_size[4] = 120;
    30. ammo_max[4] = 240;
    31. ammo[4] = 0;//ammo_max;
    32. ammo_mag[4] = 0;//mag_size;
    33. reload_time[4] = room_speed*5.7;
    34. shot_delay[4] = 2;
    35. bullet_spread[4] = 3;
    36. bulletshell_speed = 10;
    37. reloading = false;
    38. weapon_recoil[0] = 1;
    39. weapon_recoil[1] = .75;
    40. weapon_recoil[2] = 1.5;
    41. weapon_recoil[3] = 3;
    42. weapon_recoil[4] = 1.75;
    43. weapon_reload_animation[0] = noone;
    44. weapon_reload_animation[1] = spr_pistol_reload;
    45. weapon_reload_animation[2] = spr_mp_reload;
    46. weapon_reload_animation[3] = spr_shotgun_reload;
    47. weapon_reload_animation[4] = spr_mg42_reload;
    48. weapon_first_use[0] = true;
    49. weapon_first_use[1] = true;
    50. weapon_first_use[2] = true;
    51. weapon_first_use[3] = true;
    52. weapon_first_use[4] = true;
    53. weapon_damage[0] = 3.5;
    54. weapon_damage[1] = 4;
    55. weapon_damage[2] = 3;
    56. weapon_damage[3] = 1.5;
    57. weapon_damage[4] = 2.5;
    58. weapon_offset_x[0] = 12;
    59. weapon_offset_x[1] = 0;
    60. weapon_offset_x[2] = 0;
    61. weapon_offset_x[3] = 42;
    62. weapon_offset_x[4] = 30;
    63. weapon_offset_y[0] = 16;
    64. weapon_offset_y[1] = 0;
    65. weapon_offset_y[2] = 9;
    66. weapon_offset_y[3] = 8;
    67. weapon_offset_y[4] = 8;
    68. ammo_description[0] = "";
    69. ammo_description[1] = "9 x 19mm";
    70. ammo_description[2] = "4.6 x 30mm";
    71. ammo_description[3] = "buckshot";
    72. ammo_description[4] = "7,92 x 57 mm";
    73. sound_reload[0] = noone;
    74. sound_reload[1] = snd_reload_pistol01;
    75. sound_reload[2] = snd_reload_pistol02;
    76. sound_reload[3] = snd_reload_pistol02;
    77. sound_reload[4] = snd_reload_pistol02;


    Zu dem anderen, du musst sicher keine 10000 Objekte ausführen, du kannst einfach diese deaktivieren welche ausserhalb des Views sind.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel: