Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # v1 good,
- # written for godot movement
- # it works well and is simple
- extends Node2D
- # Declare member variables here.
- var velocity := Vector2.ZERO
- var direction := Vector2.ZERO
- var max_speed: float = 200
- # Called every frame. 'delta' is the elapsed time since the previous frame.
- func _process(delta):
- direction = get_direction()
- if direction:
- velocity = accelerate(0.1)
- else:
- velocity = decelerate(0.07)
- position += velocity * delta
- func decelerate(drag: float) -> Vector2:
- return lerp(velocity, Vector2.ZERO, drag)
- func accelerate(drag: float) -> Vector2:
- var target_velocity: Vector2 = direction * max_speed
- return lerp(velocity, target_velocity, drag)
- func get_direction() -> Vector2:
- var direction: Vector2 = Vector2.ZERO
- direction.y = Input.get_axis("move_up", "move_down")
- direction.x = Input.get_axis("move_left", "move_right")
- return direction.normalized()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement