Improved network interpolation
This commit is contained in:
@ -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)
|
Reference in New Issue
Block a user