Tiene pinta de que lo que intentas es incrementar su velocidad en el salto hacia arriba y luego decrementarla.
Esto está bien, pero piensa que lo estás haciendo de golpe, por lo que preparas tu sprite, cambias tu posición, pero cuando dibujas es como
si ya hubiera caido del salto. Es decir, al principio incrementas su velocidad, pero luego la vuelves a decrementar dejándola como estaba y,
por tanto, dejando al sprite en la misma posición.
Para hacerlo de manera correcta te aconsejo los siguientes pasos.
En el método saltar, en lugar de cambiar la posición activa un estado dentro de la clase para saber que tu sprite está saltando.
Luego, añade a tu bucle de control un método update al sprite que se llame antes de dibujarlo. En este método, comprueba si el objeto
está saltando, haciendo en ese caso la animación de manera incremental, cambiando el valor de la posición en cada dibujado. De esa manera conseguirás la animación, aunque puede que con 10 frames para el salto no baste dependiendo de los FPS que estés utilizando.
Espero que te sirva de ayuda. No puedo aportarte código xq no tengo tiempo ni compilador para mirarlo, pero creo que con la idea te puede bastar para implementarla
tu mismo o incluso mejorarla
