Saludos Makeros, estoy a punto de terminar mi replica de Tetris pero me falta un ultimo toque a la mecanica pero por desgracia este todavia nose como lograrlo

Tengo un objeto que tiene como unico proposito destruir las filas que esten llenas
[gml]
/// Event Create
image_index = 0;
image_speed = 0.5;
count_destroy = 0;

/// Event Step
// Destruirnos despues de acabar animacion
if (image_index >= image_number-1) {
    image_speed = 0;
    image_index = image_number-1;
    count_destroy += 1;

    // Destruir piezas estaticas
    local.c = instance_place(x, y, obj_pieza_estatica)
    if (local.c) {
        with(local.c) instance_destroy()
    }
    // Si termino el conteo para destruirse
    if (count_destroy >= 10)
        instance_destroy()
}
[/gml]

Ahora como haria para mover todas las piezas que esten por arriba del objeto destroy para abajo unos 32 pixeles o 64 pixeles etc, todo segun el obj_destroy que este mas arriba pues puede que haya 4 filas llenas a destruir

Y todo sin que ninguna pieza baje mas de lo que deberia pues puede que haya un espacio 32 pixeles abajo de una pieza y solo quiero que las piezas que esten arriba bajen una sola vez

Espero se haya entendido  :-\

Podrias usar la funcion with para mover todos las piezas al mismo tiempo, con la condicion de que este encima de las piezas eliminadas
Si tienes varios objetos para representar distintas piezas, podrias crear un objeto parent para facilitarte el trabajo y usar ese objeto con el with.
Guarda en unas variables temporales la poiscion y de la fila que este mas arriba que se va a eliminar(en caso de que sea mas de una fila) ademas de cuantas filas se eliminan, luego eliminas la fila/s, y terminas por mover las piezas que estan arriba.