Improved network interpolation
This commit is contained in:
@ -9,11 +9,12 @@ func handle_packet(data: PackedByteArray):
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.data_array = data
|
||||
|
||||
var player_id_length := buffer.get_size() - 8
|
||||
var player_id_length := buffer.get_size() - 4 - 4 - 4 - 4
|
||||
var player_id := buffer.get_string(player_id_length)
|
||||
var x := buffer.get_float()
|
||||
# var y := buffer.get_float()
|
||||
var z := buffer.get_float()
|
||||
var direction_x := buffer.get_float()
|
||||
var direction_z := buffer.get_float()
|
||||
|
||||
var player := Global.players.get_player(player_id)
|
||||
|
||||
@ -24,9 +25,10 @@ func handle_packet(data: PackedByteArray):
|
||||
|
||||
if !controller:
|
||||
return
|
||||
|
||||
|
||||
controller.server_position.x = x
|
||||
controller.server_position.z = z
|
||||
controller.direction_changed.emit(Vector3(direction_x, 0, direction_z))
|
||||
|
||||
func _physics_process(_delta):
|
||||
if Global.player == null:
|
||||
@ -46,6 +48,7 @@ func send_position():
|
||||
var buffer := StreamPeerBuffer.new()
|
||||
buffer.put_8(PacketHandler.Packet.PLAYER_MOVE)
|
||||
buffer.put_float(Global.player.position.x)
|
||||
# buffer.put_float(Global.player.position.y)
|
||||
buffer.put_float(Global.player.position.z)
|
||||
buffer.put_float(Global.player.movement.direction.x)
|
||||
buffer.put_float(Global.player.movement.direction.z)
|
||||
%Client.send(buffer.data_array)
|
||||
|
Reference in New Issue
Block a user