hola, me preguntaba cómo se hace para que , si yo tengo un sprite, por ejemplo con 6 subimagenes, de una animación. ¿Cómo podría calcular el tiempo que mi objeto salta y tarda en caer para que la animación concuerde?
Es decir, yo tengo un sprite con N subimagenes y quiero que la animación concuerde con el salto de mi objeto, independientemente de la distancia de salto. Por ejemplo si, aun el sprite contiene X subimanes, pero la distancia de salto es mayor o menor, que la animación quepa en ese lapso de tiempo.

Se puede hacer algo como eso? Teniendo en cuenta que la plataforma de salto siempre es la misma, es decir, si salta a una determinada altura, caerá en la misma plataforma o en una similar con igual altura y no en otra que esté mas abajo o más arriba.

#1 Julio 14, 2015, 12:07:39 AM Ultima modificación: Julio 14, 2015, 12:12:27 AM por penumbra
Se puede, pero se necesitaría conocer qué código o lógica uses para saltar. También se necesita saber qué método usas para limitar el salto, es decir, si el salto dura siempre lo mismo sin importar cuánto se presione el botón o si el salto varía según el tiempo que se mantenga presionado.

Conociendo los datos anteriores se podría saber cuántos steps transcurrirán desde el comienzo del salto hasta que se toca nuevamente el suelo. También hay que considerar si el nivel del suelo es regular o no, por ejemplo, si el lugar donde comienza el salto no está a la misma altura que el lugar donde se aterrizará.

6 subimágenes pueden ser pocas imágenes si el salto es muy largo, la animación se puede ver poco fluída, pero depende de las dimensiones y distancias que manejes en tu juego.

Si el salto se hace en 60 frames, y son 6 subimágenes, pues cada subimagen se mostraría durante 10 frames, o lo que es lo mismo,
[gml]image_speed = 1/(60/6) = 0.1 [/gml]
o eso creo  :-[



Ah, claro, igual no tengo muy bien en claro como calcularlo :-X
basicamente salta usando "vspeed =- N" y cae, digamos, usando gravedad con "gravity". Y claro, el piso desde donde salta, y a donde cae están a la misma altura.

a lo mejor hay una función para calcular la distancia máxima dependiendo de vspeed?

Aquí está una buena guía para calcular los saltos: http://www.comunidadgm.org/articulos/como-medir-el-salto-de-tu-personaje-plataformero-(programacion)/

Si el personaje puede aterrizar a diferentes alturas, tal vez no sea conveniente tener una animación con tiempos exactos. La animación se podría basar en la velocidad vertical y en la distancia al piso, por ejemplo, cuando se inicia el salto la velocidad vertical tiene un valor absoluto grande y es negativa, aquí debe iniciar la primera parte de la animación; cuando se está alcanzando la altura máxima la velocidad sigue siendo negativa pero con valor absoluto pequeño, aquí se inicia la segunda parte de la animación (digamos que el personaje encoje las piernas); cuando la velocidad pasa a ser positiva el personaje está cayendo, en cierto valor se debe iniciar la tercera parte de la animación. Puede haber otras animaciones, por ejemplo, cuando la velocidad vertical es positiva y es muy grande el personaje se puede mostrar asustado porque la caída le causará daño, o si se está muy cerca del piso mostrar al personaje preparado para aterrizar.

vale, ya con este ultimo si me salió, luego de hacer muchas pruebas XD
gracias!