ds_list[array]

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

  • ds_list[array]

    Hey Leute, ich möchte ein Array von Listen unterschiedlicher Länge anlegen. Ein 2 dimensionales Array oder ein ds_grid, wäre mir keine gute Lösung weil dann soviel Platz verschwendet wird, bzw ich nicht gut die Länge einer Liste bekommen, weil ja dann alle gleichlang sein müssen. Ich möchte eine überschaubare Anzahl (max ca 10) an Listen mit "unendlicher" LÄnge über eine Variable ansprechen.

    Mein Ansatz hat gut funktioniert bis ich eine for-Schleife im draw Event durchlaufe um alle Listen drawen zu lassen. gelöst
    Spoiler anzeigen

    GML-Quellcode

    1. //STEP STEP STEP EVENT
    2. global.line[line_no] = path_add();
    3. path_set_closed(global.line[line_no], 0);
    4. for (i = 0 ; i <= ds_list_size(ds_line[line_no])-1 ; i += 2)//hier funktioniert es noch ohne Error
    5. {
    6. path_add_point(global.line,ds_list_find_value(ds_line[line_no],i),ds_list_find_value(ds_line[line_no],i+1),100);
    7. }
    8. //DRAW DRAW DRAW EVENT
    9. for (i = 0 ; i < ds_list_size(ds_line[line_no])-2 ; i += 2)//hier kommt ein Error
    10. {
    11. //DRAW BACKGROUDN THROUGH BUILDINGS
    12. draw_line_width_colour(ds_list_find_value(ds_line[line_no],i), ds_list_find_value(ds_line[line_no],i+1), ds_list_find_value(ds_line[line_no],i+2), ds_list_find_value(ds_line[line_no],i+3),10,background_colour,background_colour);
    13. draw_sprite_ext(spr_line,3,ds_list_find_value(ds_line[line_no],i)+1,ds_list_find_value(ds_line[line_no],i+1)+1,1,1,0,background_colour,1);
    14. draw_sprite_ext(spr_line,3,ds_list_find_value(ds_line[line_no],i+2)+1,ds_list_find_value(ds_line[line_no],i+3)+1,1,1,0,background_colour ,1);
    15. }
    Alles anzeigen


    Quellcode

    1. Push :: Execution Error - Variable Index [0,1] out of range [1,1] - -1.ds_line(100019,1)
    2. at gml_Object_obj_control_DrawEvent_1 (line 18) - for (i = 0 ; i < ds_list_size(ds_line[line_no])-2 ; i += 2)


    ohne dem array funktioniert es natürlich, aber dann habe ich nur eine line oder müsste line_00, line_01 erstellen und befüllen etc, also nix gutes oder ein grid benutzen und immer checken ob der nächste wert das Ende der eigtl liste ist und nur mehr "füller im grid" ist.

    GML-Quellcode

    1. //zb -1 als Ende einer Liste und dann das grid arbeiten
    2. [32][32][32]
    3. [32][32][-1]
    4. [32][32][-1]
    5. [-1][32][-1]
    6. [-1][32][-1]
    7. [-1][-1][-1]


    Ich habe in der draw_forschleife eine list abgefragt die es noch gar nicht gibt. Das ist also nun in Ordnung; Aber ein anderes Problem ist aufgetreten; ich kann den Path path_start(global.line[line_no],4,3,1); nicht abfragen. Bzw er wirft keinen Error sondern bewegt sich einfach nicht. Ohne [line_no] funktionierts.

    Man kann kein Array an paths anlegen :(
    Gut ist erledegt, aber vllt gut Info für manch anderen.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Aku_Ryou ()