Eine Liste erstellen mit Arrays und Automatischen Anordnung

  • GM 6

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

  • Eine Liste erstellen mit Arrays und Automatischen Anordnung

    Ja Hallo,
    habe da mal wieder nen Problem und zwar brauche ich eine Liste.
    Die Daten sind in Arrays gespeichert:

    GML-Quellcode

    1. global.items[0]=0;
    2. global.items[1]=44;
    3. global.items[2]=873829;

    usw.

    Jetzt habe ich in einem Draw Event folgendes stehen:

    GML-Quellcode

    1. if global.items[0]>0 { //eine Aktion die ich unten nochmal erkläre und dann ein Bild anzeigen

    Mein Prinzip wie ich denke das es Funtkionieren soll:
    Wenn jetzt die Array größer als 0 ist soll das Item in der Liste angezeigt werden. Jetzt passiert folgendes, im beispiel sind 2 Arrays über Null, deswegen sollen 2 Items angezeigt werden. Aber versteht sich ja schon von alleine nicht auf dem gleichen xy wert sonder Tiefen (eine Liste die untereinander Auflistet soll es werden) sprich y+=60;
    Aber wenn ich jetzt so vorgehe:

    GML-Quellcode

    1. if global.items[0]>0 {yy+=60; draw_sprite(spr_beutel_items,0,x+17,y+yy);}
    2. if global.items[1]>0 {yy+=60; draw_sprite(spr_beutel_items,1,x+17,y+yy+60);}
    3. if global.items[2]>0 {yy+=60; draw_sprite(spr_beutel_items,2,x+17,y+yy+60+60);}

    Versteht sich das yy+=60 in jedem Step auswirkt und so die Item Punkte nach unten schießen.

    Frage:
    Wie mache ich es jetzt das yy+=60 nur einmal ausgeführt wird für je global.items[zahl] die über null ist? sprich, das die Items untereinander geordnet sind.

    Ich hoffe man versteht die Frage, danke schonmal für die Antworten
  • wie meinst du das?
    Ich glaube das das so einfach nicht funktioniert.
    Da der nächste eintrag darunter erscheinen soll. Wenn ich es immer wieder auf den standart wert setzt wird das nächste objekt genau über ein anderes objekt gezeichnet. weißte wie ich das meine?
  • Äh... du setzt die Variable yy + 60 und screibst beim y wert von der zeichen funktion nochmal y+yy+60, y+yy+60+60 ...
    Warum machst du nicht einfach 60*z? (Also mit einer for-Schleife)

    Edit: Also so:

    GML-Quellcode

    1. z=0
    2. for (i=0; i<wasweißich; i+=1)
    3. {
    4. if global.items[i]>0 {z+=1; draw_sprite(spr_beutel_items,0,x+17,y+z*60);}
    5. }