- Home /
Rigidbody2D control jump height
Hi, I'm currently developing a game where the player can control the height of it's jump. Is it possible to achieve that half of the applied velocity results in half of the jump height as the player would excpect it when he holds the jump button half as long? I do jumps via
rigidbody2D.velocity = rigidbody2D.velocity + Vector2(0, yVelocity);
Thanks for your help :).
You could setup a system that calculates how long the button has been pressed pretty easy by storing Time.time in a variable on the button down event and subtracting that variable from Time.time when the button is released to give you the length of time it was pressed. You could have a max jump press time set at say 3 seconds and more and any less than 3 seconds would result in a partial power jump. You would do this by dividing the length of time the button was pressed, say 1.45 seconds divided by your max press(3), which in this case, gives you 0.48333. Then you would multiply 0.48333 by your max jump velocity. Let's say that is 10, so the result will be 4.833 of velocity. If the button is held for 3 seconds or longer, you could just pass the max jump velocity
Hope that helps
Thanks for your help. That's the way it's currently working. However, half of the velocity does not mean half of the jump height. For example, a velocity of 20 results in a jump height of 6.5, but a velocity of 10 only in 1.5. So how can I achieve that a button press of 0.5 sec really results in a jump height half of the button press of 1 sec?