Game Maker Studio

Tutorial: Crear estela en objetos

Un efecto de estela en los objetos que están en movimiento es un recurso fácil que implementar y que queda muy vistoso, dando énfasis al movimiento que está realizando dicho objeto. En realidad, una estela no es más que dibujar el mismo objeto en las posiciones que ha ocupado en frames anteriores, con un degradado de color que lo vuelve más transparente conforme más se aleja de su posición actual.

trail_screenshot

En Game Maker, hay unas variables que se actualizan automáticamente a cada frame y que se llaman xprevious e yprevious, y que guardan la posición x e y que tuvo el objeto en el frame anterior. Si aprovechamos estas e incluso las ampliamos con otras variables de ususario, podremos guardar en cada frame una lista de coordenadas de los últimos 2, 3, 4… frames anteriores.

Para ello lo primero que vamos a hacer es inicializar en el evento Create las variables que necesitemos, en este ejemplo serán las cuatro siguientes:

xprev2 = 0;
yprev2 = 0;
xprev3 = 0;
yprev3 = 0;

De forma que ya tendríamos cuatro posiciones guardadas:

(xprev3,yprev3) –> (xprev2,yprev2) –> (xprevious, yprevious) –> (x,y)

Y ahora tan solo debemos ir actualizándolas y dibujándolas en el evento Draw:

if (xprev3 != 0){
    draw_sprite_ext(s_ovni,0,xprev3,yprev3,1,1,0,c_gray,0.25);
}
if (xprev2 != 0){
    draw_sprite_ext(s_ovni,0,xprev2,yprev2,1,1,0,c_gray,0.50);
    xprev3 = xprev2;
    yprev3 = yprev2;
}
draw_sprite_ext(s_ovni,0,xprevious,yprevious,1,1,0,c_gray,0.75);
xprev2 = xprevious;
yprev2 = yprevious;
draw_sprite_ext(s_ovni,0,x,y,1,1,0,c_white,1);

Destacar que el código antes utilizado habría que adaptarlo a vuestra situación concreta, obviamente el sprite s_ovni es el que quiero dibujar en mi caso. El resultado, en movimiento, lo tenéis aquí mismo:

trail

Deja un comentario