My general approach to jumping fast is to use the drop value to make a slightly smoother move. I can't look at any / xna code right now, but my first thought would be as shown below.
Define the variables:
float bleedOff = 1.0f; bool jumping = false;
Input update:
if(input.JumpKey()) { jumping = true; }
Transition Update:
if(jumping) {
Obviously, the value of bleedOff should be calculated with a little more randomness, perhaps using the value of gravity to make it look right, but this will give the illusion of acceleration / deceleration with a jump as they rise and fall.
Ascent very quickly begins and slows down and eventually begins to fall again, and it will accelerate. The clamp below is your maximum vertical speed.
I just wrote it from my head at work, so I apologize if this is not quite what you are looking for, but I tried to keep it a little more general. Hope this helps.
source share