Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: JackGA17 en Diciembre 11, 2018, 08:29:29 PM

Título: [Solucionado] Ayuda, no sé como manejar las animaciones con este código
Publicado por: JackGA17 en Diciembre 11, 2018, 08:29:29 PM
Verán mi problema es este: Tengo este código de movimiento para movimientos fluidos de forma vertical, horizontal y diagonal

//Movimiento
Up = keyboard_check(vk_up);
Down = keyboard_check(vk_down);
Left = keyboard_check(vk_left);
Right = keyboard_check(vk_right);

Total_lados = Up + Down + Left + Right;

if (Total_lados > 0 && Up + Down != 2 && Left + Right != 2) {
    Angulo = degtorad((Up*(90) + Left*(180) + Down*(270) + Right*(360)*Down)/Total_lados);
    x += cos(Angulo)*4;
    y -= sin(Angulo)*4;
}


pero no sé como manipular la animación de movimiento del personaje.

Gracias de ante mano para aquellos que me puedan ayudar.
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: bygdle en Diciembre 11, 2018, 10:28:56 PM
¿A qué te refieres con "la animación" del personaje? Explícate un poco mejor para poderte ayudar.
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: JackGA17 en Diciembre 11, 2018, 10:34:43 PM
Al sprite del personaje le tengo una animación de caminar para cada dirección, pero no sé como usar dichas animaciones en ese código, por mas que pienso para hallar una solución no la encentro
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: bygdle en Diciembre 11, 2018, 10:51:51 PM
Supondré que la "animación" en cada dirección está dada por sprites diferentes, por lo que podrías hacer esto:
[gml]
///EVENTO CREATE

//Un arreglo con las direcciones ordenadas en contra de las manecillas del reloj.
sprite[0] = spr_derecha;
sprite[1] = spr_derechaArriba;
sprite[2] = spr_arriba;
sprite[3] = spr_izquierdaArriba;
sprite[4] = spr_izquierda;
sprite[5] = spr_izquierdaAbajo;
sprite[6] = spr_abajo;
sprite[7] = spr_derechaAbajo;
[/gml]
Y ahora modificas el código de movimiento así:
[gml]
//Movimiento
var up    = keyboard_check(vk_up);
var down  = keyboard_check(vk_down);
var left  = keyboard_check(vk_left);
var right = keyboard_check(vk_right);

var Hor = right - left;
var Ver = down  - up;

var angle = point_direction(0, 0, Hor, Ver);

sprite_index = sprite[ (angle/ 45) % 8 ];
x += dcos(angle)*4;
y -= dsin(angle)*4;
[/gml]
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: JackGA17 en Diciembre 12, 2018, 01:42:51 AM
Niu lo acabo de probar, pero el personaje se va hacia la derecha solo apenas inicia, ademas que la animación que no ocurre, mira hacia el lado que va pero no hay animación de pasos
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: bygdle en Diciembre 12, 2018, 03:27:26 AM
Ah, se me olvidó ese detalle xd. Modifica el código así:
[Gml]
if abs(Hor) or abs(Ver) {
    image_speed = 1;
    sprite_index = sprite[ (angle/ 45) % 8 ];
    x += dcos(angle)*4;
    y -= dsin(angle)*4;
}
else image_speed = 0;
[/Gml]
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: JackGA17 en Diciembre 12, 2018, 10:16:05 PM
Niu, otro problema, ahora el personaje solo se mueve hacia derecha, abajo y abajo-derecha. Cuando pulso arriba o izquierda se queda quieto :(
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: bygdle en Diciembre 12, 2018, 10:27:54 PM
xdxdxd.
Disculpa, ando en móvil y estoy pasando por alto muchas cosas v':

Edité mi mensaje anterior, así debería servir.
Título: Re:Ayuda, no sé como manejar las animaciones con este código
Publicado por: JackGA17 en Diciembre 13, 2018, 01:37:13 AM
Ahora si, gracias XD