Improved network interpolation

This commit is contained in:
2024-02-15 18:06:44 +01:00
parent b439919ad0
commit 2e7b385b46
6 changed files with 22 additions and 18 deletions

View File

@ -1,10 +1,9 @@
class_name ProxyController
extends Controller
## The character that we're controlling.
var player: Player
@export var interpolation_speed: float = 10.0
## The authoritative position on the server.
var player: Player
var server_position: Vector3
func _init(new_player: Player):
@ -14,13 +13,7 @@ func _init(new_player: Player):
func _ready():
server_position = player.position
func _process(_delta):
var move := server_position - player.position
move.y = 0.0
if move.length_squared() < 0.02:
direction_changed.emit(Vector3.ZERO)
return
var direction := Vector3(move.x, 0, move.z).normalized()
direction_changed.emit(direction)
func _process(delta: float):
var time := interpolation_speed * delta
player.position.x = lerpf(player.position.x, server_position.x, time)
player.position.z = lerpf(player.position.z, server_position.z, time)