Added player movement

This commit is contained in:
2024-01-26 17:14:20 +01:00
parent 2cd93f2a39
commit 8370afd9a1
12 changed files with 148 additions and 23 deletions

View File

@ -21,13 +21,16 @@ func handle_packet(data: PackedByteArray, _peer: PacketPeer):
var player := spawn_player()
player.position = server_position
player.set_character_name(player_name)
player.set_character_name(player_id)
if player_id == Global.account_id:
Global.player = player
var controller := PlayerController.new()
controller.character = Global.player
Global.player.add_child(controller)
player.controller = PlayerController.new()
else:
player.controller = ProxyController.new()
player.controller.character = player
player.add_child(player.controller)
func spawn_player() -> Player:
var player = player_scene.instantiate()

View File

@ -0,0 +1,43 @@
extends PacketHandler
@export var delay := 50
var last_sent := Time.get_ticks_msec()
var last_sent_position := Vector3.ZERO
func handle_packet(data: PackedByteArray, _peer: PacketPeer):
var buffer := StreamPeerBuffer.new()
buffer.data_array = data
var player_id_length := buffer.get_size() - 8
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 player := %Players.get_node(player_id)
var controller := player.controller as ProxyController
controller.server_position.x = x
controller.server_position.z = z
func _physics_process(_delta):
if Global.player == null:
return
if Global.player.position == last_sent_position:
return
if Time.get_ticks_msec() < last_sent + delay:
return
send_position()
last_sent = Time.get_ticks_msec()
last_sent_position = Global.player.position
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)
%Client.socket.put_packet(buffer.data_array)