ds_list + Draw-Event

  • GM 8

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

  • da zu must du eine schleife machen.
    mit einmal kannst du das nicht machen.
    aus du machts immer wieder den draw_text befehl.

    du machst eine schleife in der der befehl so oft wieder holt wird bis das ende der list gefunden ist.

    so müst das ungefähr aussehen

    GML-Quellcode

    1. var list_pos;
    2. list_pos=0 //setzt die zu auslesende zeile auf 0 /anfang der ds_list
    3. do
    4. {
    5. draw_text(x,y+(16*list_pos),string(ds_list_find_value(id,list_pos))) //drawed den text mit der ensprechende zeile und erhöht auch gleich den y wert damit es utner einander steht
    6. list_pos+=1 //spring in die nachste zeile.
    7. }
    8. until(list_pos<ds_list_size(id)) //für die schleide so lang aus bis das ende der ds_list ereicht ist.


    das must du dir dann selber zurecht shneiden wie du es brauchst. aber so ist die basic.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • for-Schleifen sind dafür genau richtig. Ich mach das immer so:

    GML-Quellcode

    1. var text, i, eintrag;
    2. // text ist der zu zeichnende Text
    3. text = "";
    4. // Für jeden Eintrag in der Liste, oder ..
    5. // .. starte mit i = 0 und erhöhe es um 1 solange i < Listengröße ist
    6. for (i = 0; i < ds_list_size(list); i += 1) {
    7. // Finde Eintrag in der Liste
    8. eintrag = ds_list_find_value(list, i);
    9. // Füge Eintrag (sollte ein String sein) zu text hinzu (plus #, ein Zeilenumbruch)
    10. text += eintrag + "#";
    11. }
    12. // Zeichne den kompletten Text auf einen Rutsch
    13. draw_text(x, y, text);
    Alles anzeigen

    Du kannst es natürlich auch wie x-sascha machen, das bleibt dann dir überlassen.
  • Clark schrieb:

    @copyboy Wofür steht die Variable i? Die finde ich immer öfters...

    Das kann ich dir auch beantworten.
    Die Variable i benutz man einfach wenn irgendwas immer erhöht wird, d.H.: z.B.: in Schleifen (naja ich benutz es eig. nur in schleifen) hat aber keine wirkliche Bedeutung du könntest ebenso ganz normal laufvariable statt i benutzen.. i,j,k,l und so.. benutz man einfach als Laufvariablen.
    Wenn mehrere Programmierer arbeiten ist es sinnvoll die Variablen sinnvoll zu gestalltenm, da sonst "Überlappungen" enstehen könnten und i ist einfach ein schöner strich mit einem lustigen Punkt drauf, also wieso nicht ;)

    mfg
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Ergo: Je mehr Käse, desto weniger Käse.