# Why does delta time make things go so slowly?

Attention Topic was automatically imported from the old Question2Answer platform.

So, i have a simple kinematic 2d character with this code

``````extends KinematicBody2D

export var direction = Vector2(0,0)
export var walk_speed = 200
export var jump_speed = -400
export var gravity = 200

pass

func _physics_process(delta):

direction.y += gravity * delta
direction.x = 0

if Input.is_action_pressed("left"):
direction.x -= walk_speed
if Input.is_action_pressed("right"):
direction.x += walk_speed
if Input.is_action_just_pressed("jump"):
direction.y = jump_speed

var movement = move_and_slide(direction, Vector2(0,-1))
``````

And it works well, but it isn’t consistent (obviously) so in my move and slide function, i added:

``````var movement = move_and_slide(direction * delta, Vector2(0,-1)
``````

The only problem is that it causes my character to move very slowly. I tried increasing the jump_speed and walk_speed variables, which works somewhat, but it seems like they would need to be big numbers to move correctly and i would rather deal with smaller variables.

So, is there a way to fix this, or do i have to multiply my variables by a hundred?

Also, out of curiosity, why does multiplying it with delta cause this?

You’re absolutely right! And the hundreds is actually the right place for those velocity values. Let me explain:

`move_and_slide` is a method that factors delta internally. So your code is basically multiplying by delta twice. Just remove the delta and `move_and_slide` will make it consistent.

https://docs.godotengine.org/en/stable/classes/class_kinematicbody.html#class-kinematicbody-method-move-and-slide:

Unlike in `move_and_collide`, you should not multiply it by delta — the physics engine handles applying the velocity.

thanks to both Kanor and exuln! I had no idea that move and slide already factors delta. Nice. Unsure which answer to select as best though. I guess i’ll choose Kanors since it was first, although exulns was helpful as well. Thanks again!

Millard | 2020-09-22 03:29

`move_and_slide()` automatically calculates frame-based movement using `delta`. Do not multiply your velocity vector by `delta` before passing it to `move_and_slide()`.
So the reason your character moves slower when you multiple the movement vector by `delta` in the `move_and_slide()` function is because `delta` is less than one, so multiplying the movement vector by it reduces the length of the vector. The `move_and_slide()` method is consistent already since it multiples by `delta` automatically.