Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Efecto de desintegración  (Leído 7278 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Clamud

Respuesta #15 en: Abril 24, 2016, 09:32:03 pm
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.
///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;
}

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.
///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);
    }
}
« última modificación: Abril 28, 2016, 04:45:51 pm por Clamud »

 


Desconectado Black_Cat

Respuesta #16 en: Abril 29, 2016, 12:58:58 am
Intenté usar la modificacion del script, pero al parecer ocurre que se desfasa el indice.
Adjunto una imagen que muestra el cartel de error.


 


Desconectado Clamud

Respuesta #17 en: Abril 29, 2016, 01:27:06 am
El error indica que las variables no se han definido como arrays, ¿has creado la cuadricula previamente?

Adjunto la prueba que hice.
« última modificación: Abril 29, 2016, 01:29:08 am por Clamud »

 


Desconectado Black_Cat

Respuesta #18 en: Abril 29, 2016, 04:53:12 pm
Ah vale, ya pude solucionarlo, el problema está en cuando se voltea la imagen antes de crear la cuadricula, de esta forma:
image_xscale = -1;
crear_cuadricula(args...);

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