Now I', trying to interpolate the object location with Derivative
# variable for saving location, speed, acceleration and result
# past and current location of mouse
var PastMouseLocation: Vector2
var CurrentMouseLocation: Vector2
# Derivated beforePast~Past and Past~Current location
var DerivatedPastMouseSpeed: Vector2
var DerivatedCurrentMouseSpeed: Vector2
# Derivated beforePast~Past speed
var DerivatedMouseAcceleration: Vector2
# result
var InterpolatedMouseLocation: Vector2
and I set initial value in _ready function
func _ready() -> void:
PastMouseLocation = get_global_mouse_position()
CurrentMouseLocation = get_global_mouse_position()
DerivatedPastMouseSpeed = Vector2(0, 0)
DerivatedCurrentMouseSpeed = Vector2(0, 0)
DerivatedMouseAcceleration = Vector2(0, 0)
At last, _process
func _process(_delta: float) -> void:
# calculate position
PastMouseLocation = CurrentMouseLocation
CurrentMouseLocation = get_global_mouse_position()
# calculate speed
DerivatedPastMouseSpeed = DerivatedCurrentMouseSpeed
DerivatedCurrentMouseSpeed = CurrentMouseLocation - PastMouseLocation
# calculate acceleration
DerivatedMouseAcceleration = DerivatedCurrentMouseSpeed \
- DerivatedPastMouseSpeed
InterpolatedMouseLocation = ???
# Do something with CurrentMouseLocation,
# DerivatedCurrentMouseSpeed and DerivatedMouseAcceleration
This gives me some headaches. But worth trying.