aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2024-07-20 17:31:48 +0200
committertpart <tpart120@proton.me>2024-07-20 17:31:48 +0200
commit8290f420bee04702751ae6e4453c8b140e227e19 (patch)
tree3b0895d7af6c39373629251bd02050d89b427ab8
parentf8c73c6fd8643deac086305f7e38c275a442c0af (diff)
downloadhurrycurry-8290f420bee04702751ae6e4453c8b140e227e19.tar
hurrycurry-8290f420bee04702751ae6e4453c8b140e227e19.tar.bz2
hurrycurry-8290f420bee04702751ae6e4453c8b140e227e19.tar.zst
Implement movement sync packet
-rw-r--r--client/game.gd8
-rw-r--r--client/multiplayer.gd3
2 files changed, 11 insertions, 0 deletions
diff --git a/client/game.gd b/client/game.gd
index 51981713..5c52b11e 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -36,6 +36,7 @@ var in_lobby := false
var is_replay := false
var is_joined := false
var join_sent := false
+var last_position := Vector2(0, 0)
var players := {}
@@ -107,6 +108,13 @@ func _ready():
mp.position.connect(func(player: int, pos: Vector2, rot: float, boosting: bool):
var player_instance: Player = players[player]
player_instance.update_position(pos, rot, boosting)
+ if player == player_id:
+ last_position = pos
+ )
+
+ mp.movement_sync.connect(func():
+ var player_instance: ControllablePlayer = players[player_id]
+ player_instance.position_ = last_position
)
mp.remove_player.connect(func(id: int):
diff --git a/client/multiplayer.gd b/client/multiplayer.gd
index 064ffa70..c301c401 100644
--- a/client/multiplayer.gd
+++ b/client/multiplayer.gd
@@ -35,6 +35,7 @@ signal effect_message(player: int, effect: String, persist: bool)
signal add_player(player: int, name: String, pos: Vector2, character: int)
signal remove_player(player: int)
signal position(player: int, position: Vector2, rotation: float, boosting: bool)
+signal movement_sync()
signal take_item(tile: Vector2i, player: int)
signal put_item(player: int, tile: Vector2i, )
signal pass_item_player(from: int, to: int)
@@ -127,6 +128,8 @@ func handle_packet(bytes: PackedByteArray):
var rot = decoded["rot"]
var boosting = decoded["boosting"]
position.emit(player, pos_to_vec2(pos), rot, boosting)
+ "movement_sync":
+ movement_sync.emit()
"take_item":
push_warning("take_item is deprecated")
var tile = pos_to_vec2i(decoded["tile"])