N'abend,
ich muss schon wieder eine Frage stellen.
Und zwar hab ich folgendes Problem beim Zerstören einer Block-Reihe:
Und zwar werden die zuerst erstellen Blöcke (also die mit der kleineren ID) bevorzugt, bzw die neueren Blöcke schlichtweg ignoriert.
Hier dazu noch ein kleines Bildchen:
Die Zahlen sollen in dem Falle die ID's darstellen. Wenn der 5er-Block nun runterfällt sollen alle Blöcke dort zerstört werden (da sie sich in einer Reihe mit mehr als 3 Blöcken befinden). Zerstört werden allerdings nur Block 1,2 und 5.
Hier ist der Code den ich benutze:
Create Event:
var links1, links2, rechts1, rechts2, oben1, oben2, unten1, unten2;
Step-Event:
Alles anzeigen
Nun ist die Frage: Wie bekomme ich es hin, dass erstmal alle Instanzen betrachtet werden und erst dann geschaut wird, was zerstört wird; oder liegt das Problem am Code an sich und hat gar nichts mit den ID's zutun?
Gruß
DasTier
ich muss schon wieder eine Frage stellen.
Und zwar hab ich folgendes Problem beim Zerstören einer Block-Reihe:
Und zwar werden die zuerst erstellen Blöcke (also die mit der kleineren ID) bevorzugt, bzw die neueren Blöcke schlichtweg ignoriert.
Hier dazu noch ein kleines Bildchen:
Die Zahlen sollen in dem Falle die ID's darstellen. Wenn der 5er-Block nun runterfällt sollen alle Blöcke dort zerstört werden (da sie sich in einer Reihe mit mehr als 3 Blöcken befinden). Zerstört werden allerdings nur Block 1,2 und 5.
Hier ist der Code den ich benutze:
Create Event:
var links1, links2, rechts1, rechts2, oben1, oben2, unten1, unten2;
Step-Event:
GML-Quellcode
- if place_free(x,y+1)
- {
- vspeed = 2;
- }
- else
- {
- vspeed = 0;
- links1 = instance_position(x-1,y,obj_red); // gibt die ID der Instanz wieder
- links2 = instance_position(x-1,y+31,obj_red);
- rechts1 = instance_position(x+32,y,obj_red);
- rechts2 = instance_position(x+32,y+31,obj_red);
- oben1 = instance_position(x,y-1,obj_red);
- oben2 = instance_position(x+31,y-1,obj_red);
- unten1 = instance_position(x,y+32,obj_red);
- unten2 = instance_position(x+31,y+32,obj_red);
- }
- if speed=0
- {
- if ((instance_exists(rechts1) && instance_exists(rechts2)) && (instance_exists(links1) && instance_exists(links2)))
- {
- with rechts1 instance_destroy();
- with links1 instance_destroy();
- instance_destroy();
- }
- if((instance_exists(rechts1) && instance_exists(rechts2)) && (instance_exists(unten1) && instance_exists(unten2)))
- {
- with rechts1 instance_destroy();
- with unten1 instance_destroy();
- instance_destroy();
- }
- if((instance_exists(rechts1) && instance_exists(rechts2)) && (instance_exists(oben1) && instance_exists(oben2)))
- {
- with rechts1 instance_destroy();
- with oben1 instance_destroy();
- instance_destroy();
- }
- if((instance_exists(links1) && instance_exists(links2)) && (instance_exists(unten1) && instance_exists(unten2)))
- {
- with links1 instance_destroy();
- with unten1 instance_destroy();
- instance_destroy();
- }
- if((instance_exists(links1) && instance_exists(links2)) && (instance_exists(oben1) && instance_exists(oben2)))
- {
- with links1 instance_destroy();
- with oben1 instance_destroy();
- instance_destroy();
- }
- if((instance_exists(unten1) && instance_exists(unten2)) && (instance_exists(oben1) && instance_exists(oben2)))
- {
- with oben1 instance_destroy();
- with unten1 instance_destroy();
- instance_destroy();
- }
- }
Nun ist die Frage: Wie bekomme ich es hin, dass erstmal alle Instanzen betrachtet werden und erst dann geschaut wird, was zerstört wird; oder liegt das Problem am Code an sich und hat gar nichts mit den ID's zutun?
Gruß
DasTier