Depth lässt sich nicht ändern

  • GM 8

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

  • Depth lässt sich nicht ändern

    Guten Morgen,
    kann es sein, dass es einige Zeit braucht, wenn man die depth verändern will?

    Folgender Skript funktioniert nicht so wie ich will:

    GML-Quellcode

    1. for(i=0;i<10;i+=1)
    2. {
    3. depth = i
    4. draw_sprite()
    5. }

    Ich will die sprites so in der exakt umgekehrten Reihenfolge zeichnen lassen.
    Aber egal was ich mache, das letzte gezeichnete sprite ist immer oben.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • ich hätte da drei theorien:

    die ertse wäre, dass du das am besten den script nicht inkrementieren, sondern dekrementieren solltest (seid mir nicht böse wenn ich diese wörter falsch verwende), d.h nicht i+=1 sondern i-=1.

    GML-Quellcode

    1. for(i=0;i<10;i-=1){
    2. depth = i
    3. draw_sprite() }



    die zweite möglichkeit ließe sich begründen, dass draw-event abhängig von der depth ist und diese sich also nicht mehr während des zeichnens ändern lässt.

    oder du hast es eben nicht im Draw-event gezeichnet.

    mehr kann ich dir anhand deines posts nicht weiter sagen.
    ////////////////////////////////////////////////////////////////////////////////////////////////
  • Die Idee von Henrik ist gut, sowas hatte ich schonmal.

    Und deine, Biochemic, kann garnicht funktionieren.
    Der Script würde die ganze Zeit runterzählen, weil er von 0 auf -unendlich runter geht, und +10 die grenze ist.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Die depth lässt sich soweit ich weiß und auch selbst auf das Problem gestoßen bin, nicht während des Draw-Events ändern, da es erst auf das nächste Draw-Event wirkt.

    © 2008 by Teamgrill Productions
  • Soweit ich weiß hat die Depth mit der Ausführung der Draw-Events zu tun:
    Je niedriger die depth, desto später wird es ausgeführt. Bei Instancen mit der gleichen Depth
    chekt er die Id. Je größer, desto später .Der GM erkennt eine Änderung der Depth erst
    beim nächsten Step an. Das Problem hab ich oft mit 3D :headtouch:

    Mfg
    Diesel

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Mr. Diesel ()

  • nein.

    for(...)
    draw_sprite(part[i,part_spr],0,x,y)

    Dann würde er ja die falschen Sachen drawen.
    Obwohl...
    Grad getestet!
    Jetzt zeichnet er garnix mehr.

    edit: hier der code:

    GML-Quellcode

    1. for(i=part_num-1;i>=0;i-=1)
    2. {
    3. draw_sprite_ext(spr_parts,part[i,part_id],x+lengthdir_x(part[i,part_pos_len],part[i,part_pos_dir]+image_angle),y+lengthdir_y(part[i,part_pos_len],part [i,part_pos_dir]+image_angle),part[i,part_pos_mirror],image_yscale,part[i,part_pos_angle]+image_angle,c_white,image_alpha)
    4. }


    edit2:
    @ Mr. Diesel

    Soweit ich weiß hat die Depth mit der Ausführung der Events zu tun:
    Je höher die depth, desto später wird es ausgeführt. Bei Instancen mir der gleichen Id
    chekt er die Id. Je größer, desto später .Der GM erkennt eine Änderung der Depth erst
    beim nächsten Step an. Das Problem hab ich oft mit 3D


    1. Nein, umso höher die depth, desto früher wird das bild gedrawt, das heißt ganz unten. Bilder, die ganzen oben sind, haben meist eine negative depth, oder eine niedrigere als alle anderen objekte.
    2. Was? Es gibt keine Instanzen mit gleicher id. Nur mit gleichem Object_index. Und da kommt es nur draufan, WANN sie gemacht wurden.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)

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

  • Zum ersten: Ja, mein Fehler. Genau anderst rum geschrieben.
    Aber das mit der Änderung der Depth stimmt.

    Zum zweiten: Ja, also schon komisch das Id zweimal in dem Satz vorkomment. Da hätte de Depth statt Id stehen sollen.
    Und übrigens: "wann" kann kann jeder lesen. Auch, wenn es klein geschrieben ist. Wann = Wert der Id(aufsteigend)