Explanation video on youtube!

The right way to apply gravity with delta time is not obvious. There are three basic ways to do it:

  1. before movement
  2. after movement
  3. half before and half after movement

Only type 3 is correct. Type 1 makes the jump arc get smaller at lower framerates, and type 2 makes the jump arc get bigger at lower framerates. This looping example demonstrates this fact.

Code:

func physics_early(delta): #wrong
    # ... inputs, jumping, interactions, etc. go here ...
    velocity.y += gravity*delta
    global_position += velocity*delta
func physics_late(delta): #wrong
    # ... inputs, jumping, interactions, etc. go here ...
    global_position += velocity*delta
    velocity.y += gravity*delta
func physics_mixed(delta): #correct
    # ... inputs, jumping, interactions, etc. go here ...
    velocity.y += gravity*delta*0.5
    global_position += velocity*delta
    velocity.y += gravity*delta*0.5
StatusReleased
CategoryOther
PlatformsHTML5
Authorwareya

Comments

Log in with itch.io to leave a comment.

This is huge aha moment! 👍