Мультиплеер: выделенный WebSocket-сервер, призраки других игроков

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 12:18:13 +05:00
co-authored by Claude Sonnet 5.5
parent c113faec65
commit 628319b36d
10 changed files with 252 additions and 0 deletions
+10
View File
@@ -173,6 +173,7 @@ var default_collision_y: float = 0.0
@onready var head: Camera3D = $Camera3D
func _ready() -> void:
add_to_group("local_player")
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
head_base_pos = head.position
base_fov = head.fov
@@ -223,6 +224,15 @@ func _unhandled_input(event: InputEvent) -> void:
elif event.keycode == KEY_Q:
_try_dash() # Рывок
# Битовые флаги состояния для сетевой синхронизации (см. Net.FLAG_*)
func get_net_flags() -> int:
var flags := 0
if is_sliding: flags |= Net.FLAG_SLIDING
if is_wallrunning: flags |= Net.FLAG_WALLRUN
if is_dashing: flags |= Net.FLAG_DASH
if is_mantling: flags |= Net.FLAG_MANTLE
return flags
func _get_input_dir() -> Vector2:
var input_dir := Vector2.ZERO
if Input.is_key_pressed(KEY_D):