#15 Abril 24, 2016, 09:32:03 PM Ultima modificación: Abril 28, 2016, 04:45:51 PM por Clamud
Hice unas modificaciones a los scripts, que permiten poner el origen del sprite en cualquier lugar.

En el primer script he modificado el incremento (ahora es 1), para no dejar espacios vacíos dentro de los arrays.
[gml]
///crear_cuadricula( size );
size = argument0;
for( i=0; i<sprite_width/size;  i+=1 )
for( j=0; j<sprite_height/size; j+=1 )
{
    px[i,j] = i*size;
    py[i,j] = j*size;
}
[/gml]

En el segundo script, el argumento se puede usar para indicar la velocidad de desplazamiento de los pixeles, y la suma aleatoria está en otra posición para que los pixeles del centro no queden alineados.
[gml]
///dibujar_efecto( vel );
var z; //variable auxiliar
for( i=0; i<sprite_width/size;  i+=1 )
for( j=0; j<sprite_height/size; j+=1 )
{
    draw_sprite_part( sprite_index, image_index,
        i*size, j*size, size, size,
        x - sprite_xoffset + px[i,j],
        y - sprite_yoffset + py[i,j] );
       
    if( argument0 > 0 ){
        z = point_direction( px[i,j], py[i,j], sprite_width/2, sprite_height/2 );
        px[i,j] -= lengthdir_x( argument0, z ) + random_range(-1,1);
        py[i,j] -= lengthdir_y( argument0, z ) + random_range(-1,1);
    }
}
[/gml]

Intenté usar la modificacion del script, pero al parecer ocurre que se desfasa el indice.
Adjunto una imagen que muestra el cartel de error.



#17 Abril 29, 2016, 01:27:06 AM Ultima modificación: Abril 29, 2016, 01:29:08 AM por Clamud
El error indica que las variables no se han definido como arrays, ¿has creado la cuadricula previamente?

Adjunto la prueba que hice.

Ah vale, ya pude solucionarlo, el problema está en cuando se voltea la imagen antes de crear la cuadricula, de esta forma:
[GML]
image_xscale = -1;
crear_cuadricula(args...);
[/GML]

no me había percatado, debe ser que casualmente de todas las pruebas, la mayoria de las instancias se creaban espejadas