Hola a todos. Tengo un par de preguntas sobre animacion:
1ª corresponder una animación a una acción, por ejemplo: tengo un sprite de un player saltando (desde que coge impulso hasta que aterriza en el suelo) y quiero que se ajuste a la acción de saltar, osea que cuando presione salto comience la animación y termine cuando aterrice en el suelo.
2ª tengo otro sprite de un leñador dando hachazos. En mi proyecto debe permanecer quieto hasta que presione una tecla y de un hachazo, después debe volver a su posición original. Consigo dar el hachazo (evento keyboard) pero después no se como hacer que vuelva a su posición original de espera.
Muchas gracias y un saludo.
Cita de: ascoiderº en Enero 14, 2015, 07:12:23 PM
2ª tengo otro sprite de un leñador dando hachazos. En mi proyecto debe permanecer quieto hasta que presione una tecla y de un hachazo, después debe volver a su posición original. Consigo dar el hachazo (evento keyboard) pero después no se como hacer que vuelva a su posición original de espera.
SOLO ENTENDI ESTA PREGUNTA, LA OTRA NO ENTENDI XD
Bueno, yo pienso que(es solo un idea) podrias usar un alarma calculando cuando dura la animacion de el leñador dando achazos y para que no haiga problemas al presionar varias veces la tecla q hace que el leñador de achazos puedes hacer... esto:
(EVENTO_STEP, en "execute code")
if keyboard_check(ord("A")) && sprite_index != spr_leñador_acheando//en "A" pon cualkier letra q kieras(entre "")
{
sprite_index = spr_leñador_acheando
alarm[0] = 25 // digamos que la animacion dura 25 milisegundos, tu calcula su duracion
}
y crea el evento Alarm 0 y en esa alarma pones que vuelva a su sprite original. Y LISTO! 8)
ESPERO q te sirva!
Estoy igual que [user]Yoo[/user]; no entiendo la primera duda. ¿Quieres que el tiempo de la animación dure todo lo que dura el salto?; si es así primero necesitas tener predefinido cuanto dura un salto (lo que no es posible porque no todos durarían lo mismo) o crear una función que te calcule cuanto durará el salto (y yo ni idea de como hacerlo).
Y en la segunda yo simplemente crearía el evento Keyboard donde cambias el sprite y en un Step Event pondría este código:
if (image_index = N ) sprite_index = sprite_quieto /// siendo N el numero de subimágenes del sprite que se mueve
así cuando llega a la última subimagen del sprite en que tala, pasará al sprite donde está quieto
Gracias ;) ya tengo resuelta la segunda duda.
Respecto a la primera duda: me refiero a lo que habeis dicho QUE LA ANIMACION DURE LO MISMO Q EL SALTO; ejemplo, el personaje es un gato que salta y me pasa que cuando aterriza en el suelo aún esta en las subimagenes que sale con las patitas estiradas en vez de la ultima que vuelve a apoyar las 4 patas...
ojala se entienda ahora :S
Gracias por vuestro tiempo.
Hola, por lo que entiendo, tienes que tener 1 sprite mas, o dos, según las posiciones de acabe de salto. Cuando acaba el salto chocara con algún objeto solido, ponle que cuando choque con ese objeto solido cambie a un sprite de "terminarsalto", o algo asi. Y cuando acabe esa animación, le pones la que toque.
No se si es esto algo asi lo que esperas.
La animación de salto sólo debe estar activa cuando haya gravedad, es decir, cuando no haya contacto con el suelo, es decir, cuando esté en el aire. Si está en contacto con el suelo, no hay gravedad, entonces no se debe permitir mostrar la animación de salto. La solución es usar un IF, la condición puede variar según tu juego (gravedad, vspeed, contacto contra el objeto suelo, etc)
Ok, gracias de nuevo. Iré probando todos vuestros consejos. Un saludo.