Hola gente, tengo un juego donde mi personaje se mueve en 360°.
Quiero que cuando camine deje una huella, primero que se genere la del pie izquierdo y luego la del derecho y así sucesivamente. Como mencione antes, mi personaje se mueve en 360° y por lo tanto el ángulo cambia segun la dirección. Lo que no entiendo es cómo generar las huellas dependiendo del ángulo del sprite de mi personaje. Lo demás ya tengo todo resuelto, incluso con una alarma se irán borrando las huellas más antiguas para mantener el juego optimizado. Les dejo una imagen de las huellas para que más o menos entiendan.
(https://pbs.twimg.com/profile_images/2884624948/1e53f1f6135509688e12b190ce8f7661_400x400.jpeg)
hola.. :) lo mejor que puedes hacer para eso es una superficie (surface) :
crea un objeto que sera el que controla esos efectos digamos objSurface y en este pon:
en Create:
surface=noone;
en Room End :
if surface_exists(surface){surface_free(surface)} // para limpiar la memoria al finalizar cada room...
y en Draw:
/// dibujar superficie
if (surface_exists(surface)){
// cambia objPersonaje poer el nombre de tu personaje
with (objPersonaje){
surface_set_target(other.surface);
if huella=1{
draw_sprite_ext(sprHuella,0,x,y,1,1,image_angle,c_white,.4)}
if huella=2{
draw_sprite_ext(sprHuella,0,x,y,1,-1,image_angle,c_white,.4)}
surface_reset_target();
}
//----------------------------------------------------------
draw_surface(surface,0,0);
}else{
surface=surface_create(room_width,room_height);
surface_set_target(surface);
// draw_clear_alpha(c_white,1);
surface_reset_target();
}
Ahora en tu personaje.
en Create:
huella=0
alarm[0]=8
en Alarm 0 :
if huella=2{huella=0}
if huella=1.5{huella=2}
if huella=1{huella=1.5}
if huella=0{huella=1}
alarm[0]=8 // cambia este valor dependiendo de la velocidad del personaje al caminar
y tendras que hacer pequeños ajustes para lograr tu objetivo .. pero ahi esta jeje
Gracias, lo voy a probar. Pero, ¿Si utilizo surface no relentizará el juego? Ya que es para android
En principio no, pero depende de qué hagas con esa surface, cómo la manejes antes de dibujarla y cuánta menoria de video tenga el dispositivo. Para efectos prácticos, dibujar una surface es lo mismo que dibujar un sprite o un fondo, sólo que la surface usa la memoria de video del adaptador de gráficos, y con esto hay que tener cuidado (sin exagerar). Por ejemplo, si una superficie mide 640x480, en realidad en la memoria se guarda como una textura de 1024X512 debido a que las dimensiones de las texturas se manejan como potencias de 2.
La applications surface se usa en todas las plataformas y es una surface, así que no debería haber problemas si usas otra surface para hacer operaciones normales o sencillas (y que no se trate de una surface ENORME).