Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: cristopher2545 en Marzo 21, 2018, 05:19:42 AM

Título: [solucionado] rastro de partículas usando sprites
Publicado por: cristopher2545 en Marzo 21, 2018, 05:19:42 AM
Hola a todos hace mucho no estaba por aquí
tengo un pequeño problema con ayuda de un tutorial de internet consegui hacer un rastro que deja el jugador al moverse todo funciona bien pero hay algo que no logro solventar

quiero que el rastro solo funcione cuando el personaje salte y se mueva en el aire
cuando trato de hacerlo el rastro no se desvanece lentamente si no que de golpe desaparece el ratro entero
me gustaria que cuando el jugador aterrizara las particular se desvanecieran lentamente pero que ya no las genere al caminar por el suelo.

este es mi codigo


create
trail_x = ds_list_create();
trail_y = ds_list_create();
trail_limit = 20;




step
// updating the lists

    ds_list_add(trail_x, x);
ds_list_add(trail_y, y);
// limiting the lists
if ds_list_size(trail_x) > trail_limit
{
    ds_list_delete(trail_x,0);
    ds_list_delete(trail_y,0);
}




draw

for(var i=1; i<ds_list_size(trail_x); i++)
{
    draw_set_alpha(i/trail_limit);
    draw_sprite(sprite3,-1,trail_x[|i], trail_y[|i]);
}


draw_set_alpha(1);



draw_self()


si alguien tiene un codigo mejor o puede ayudarme a mejor este lo agradecere mucho <3

gracias
Título: Re:rastro de partículas usando sprites
Publicado por: 3dgeminis en Marzo 21, 2018, 10:49:09 PM
Yo para esos casos usaria un objeto que haria de rastro, y controlaria ahi el image_alpha y demas.
Desde el jugador los iria creando cada cierto tiempo solo cuando no esta en el suelo.
Título: Re:rastro de partículas usando sprites
Publicado por: Clamud en Marzo 22, 2018, 05:44:36 AM
Puedes modificar el código del evento step de esta forma
[gml]
if (piso == false)
{
  // updating the lists
  ds_list_add(trail_x, x);
  ds_list_add(trail_y, y);

  // limiting the lists
  if ds_list_size(trail_x) > trail_limit
  {
    ds_list_delete(trail_x,0);
    ds_list_delete(trail_y,0);
  }
}
else //piso == true
{
  // reduce the lists
  if ds_list_size(trail_x) > 0
  {
    ds_list_delete(trail_x,0);
    ds_list_delete(trail_y,0);
  }
}
[/gml]
(el valor de piso debes asignarlo antes de ese bloque de código)

La sugerencia de 3dgeminis es buena, simplificaría mucho las cosas.
Título: Re:rastro de partículas usando sprites
Publicado por: cristopher2545 en Marzo 24, 2018, 07:44:59 AM
Cita de: Clamud en Marzo 22, 2018, 05:44:36 AM
Puedes modificar el código del evento step de esta forma
[gml]
if (piso == false)
{
  // updating the lists
  ds_list_add(trail_x, x);
  ds_list_add(trail_y, y);

  // limiting the lists
  if ds_list_size(trail_x) > trail_limit
  {
    ds_list_delete(trail_x,0);
    ds_list_delete(trail_y,0);
  }
}
else //piso == true
{
  // reduce the lists
  if ds_list_size(trail_x) > 0
  {
    ds_list_delete(trail_x,0);
    ds_list_delete(trail_y,0);
  }
}
[/gml]
(el valor de piso debes asignarlo antes de ese bloque de código)

La sugerencia de 3dgeminis es buena, simplificaría mucho las cosas.

funciona justo como esperaba clamud gracias! <3

y gracias 3dgeminis por la ayuda <3