Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: hardraid en Febrero 06, 2010, 01:46:03 AM

Título: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 06, 2010, 01:46:03 AM
Creador: hardraid
Version GM:  :GM8: :GM7: :GM6:
Descripci?n: Varios de ustedes ya conocieron mi antiguo post sobre sombras con particulas pero no estaba tan afinado :P ahora aprovechando que mi post ya no esta voy a mostrar una version actualizada, requiere un solo script y no dos como el anterior, es mas rapido, y lo mas importante dibuja la sombra de los sprites animados a diferencia del anterior que era estatico. Les dejo un ejemplo adjunto.

Modificacion 2.01:Se a agregado una condici?n para que en los casos que el sprite no tenga velocidad, no dibuje la animacion de la sombra. lamentablemente no encontre la forma de variar la velocidad de animacion de las particulas. Tambien se a establecido una profundidad menor a la del objeto, por defecto es asi si el objeto tiene la profundidad por defecto, pero en caso contrario no, con esto se soluciona.

ATENCION: En el evento destroy colocar:part_system_destroy(sis_sombra);//para elimianr el sistema de particulas y librar la memoria utilizada.

Tambien coloquen el codigo en el evento "End Step" despues de cualquier otra funcion.

Codigo:


//scr_sombra(alpha,escala);
//1? argumento: para ponerle la transparencia de la sombra, lo normal seria 0.5.
//2? argument2: para ponerle la escala(tama?o) de la sombra, 1 equivale al tama?o normal.
if!(variable_local_exists('sis_sombra'))//si no existe el sistema de particulas...
{
   sis_sombra=part_system_create();//creamos sistema de particulas.
   part_system_depth(sis_sombra,depth+1);//profundidad menor a la del objeto.
   sombra=part_type_create();//creamos el tipo de particula.
   emi_sombra=part_emitter_create(sis_sombra);//creamos el emisor.
}
   part_type_sprite(sombra,sprite_index,1,0,0);//la particula va a ser el sprite actual.
   part_type_color1(sombra,c_black);//indicamos color negro.
   part_type_alpha1(sombra,argument0);//indicamos transparencia
   part_type_scale(sombra,argument1,argument1);//escala un poquito mas grande q el sprite normal.
   part_type_orientation(sombra,image_angle,image_angle,0,0,0);//angulo de la particula igual al del sprite.
   if(image_speed){//si la imagen tiene velocidad...
   part_type_life(sombra,image_number,image_number);//la duracion sera igual a la duracion del sprite.
   }else{
   part_type_life(sombra,1,1);
   }
   part_type_death(sombra,1,sombra);//cuando se muere crea otra.
   sp=point_distance(xprevious,yprevious,x,y);//obtenga la velocidad en base a su posicion por steps.
   part_type_speed(sombra,sp,sp,0,0);//establecemos la velocidad.
   dir=point_direction(xprevious,yprevious,x,y);//obtenemos la direccion en base a la coordenadas de cada step.
   part_type_direction(sombra,dir,dir,0,0);//establecemos la dreccion.
   
   if(part_emitter_exists(sis_sombra,emi_sombra)){//si existe el emisor...
   part_emitter_region(sis_sombra,emi_sombra,x+2,x+3,y+2,y+3,ps_shape_rectangle,ps_distr_linear);//indicamos la region donde se crearan las particulas.
   part_emitter_burst(sis_sombra,emi_sombra,sombra,1);//iniciamos el emisor.
   part_emitter_destroy(sis_sombra,emi_sombra);//destruimso el emisor.
   }


Título: Re: Sombras con Particulas(cenital) 2.0
Publicado por: Fenris78 en Febrero 07, 2010, 05:47:20 PM
Lo acabo de probar.

Excelente script Hardraid. Funcional, efectivo y muy facil de implementar.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 08, 2010, 03:04:13 AM
gracias Fenris... acabo de realizar una peque?a modificacion, los detalles esta estan en el post.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: kakashigna en Febrero 12, 2010, 06:38:14 AM
Me parecio bastante interesante...pero al collisionar con una pared la sombra sigue andando XD

Te adjunto una imagen de mi proyecto cuando intente implementar el script
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: Wadk en Febrero 12, 2010, 07:04:50 AM
Es un buen script, pero tal parece que no queda bien si el valor de image_speed es distinto a 1.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 12, 2010, 07:23:36 PM
Wadk, lo de image_speed lo aclare en el post. con respecto a lo de la colisiones voy a fijarme y corregir.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 12, 2010, 07:37:46 PM
bueno no vi ese problema que tenes vos kakashigna, a lo mejor haras mal la colision, si queres mostrame el trozo de codigo donde haces la colision, y por las dudas te recomiendo que lo uses en "end step" voy a ponerlo en el post asi lo usan siempre asi uqe es mejor.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: kakashigna en Febrero 12, 2010, 07:43:33 PM
no pongo collision...solo uso place_free para chekear posiciones XD
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 12, 2010, 07:45:45 PM
probaste con ponerlo en "end step"?
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: kakashigna en Febrero 12, 2010, 07:53:06 PM
si,si lo hice pero el error persiste y solo ocurre cuando me muevo y la image_speed es mayor a cero...
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 12, 2010, 08:30:33 PM
la image_speed de cualquier forma no afecta eso, image_speed tiene q set 0 o el valor por defecto del sprite. mostrame el trozo de codigo q pones en el place_free.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: kakashigna en Febrero 12, 2010, 08:36:34 PM
if keyboard_check(key_up) and place_free(x,y-velocidad)
{
y-=velocidad
}

if keyboard_check(key_left) and place_free(x-velocidad,y)
{
x-=velocidad
}

if keyboard_check(key_right) and place_free(x+velocidad,y)
{
x+=velocidad
}

if keyboard_check(key_down) and place_free(x,y+velocidad)
{
y+=velocidad
}


Velocidad varia pero normalmente es 4
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 12, 2010, 08:54:22 PM
es raro, lo acabo de probar tal cual y la sombra esta bien, yo lo puse en step al codigo este. q version usas?
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: Wadk en Febrero 13, 2010, 01:23:23 AM
Cita de: hardraid en Febrero 12, 2010, 07:23:36 PM
Wadk, lo de image_speed lo aclare en el post.
Ah, mal yo xD.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: kakashigna en Febrero 13, 2010, 06:09:29 AM
he debugeado el script en mi juego un rato y ya vi exactamente donde sale el error...Cuando en mi juego golpeo con el palo(osea hay animacion) y a la vez me muevo y dejo de moverme la sombra no se deja de mover imediatamente y por eso pasa de largo...Todavia no he leido el code del script pero ver que puede ser MMM despues de que lo estudie un poco...


salu2
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: hardraid en Febrero 13, 2010, 05:44:35 PM
bien, tenes razon hay varios bug q en visto con respecto a diferentes movimientos, voy a ver como lo arreglo.
Título: Re: Sombras con Particulas(cenital) 2.01
Publicado por: TheSquirrel en Diciembre 11, 2010, 06:58:25 PM
tengo el mismo error que tiene kakashigna   ???