feat:增加多角色在线功能

- 增加远程登录角色精灵
- 基于后端接口完成位置同步
- 实现多人在线以及跳转
- 增加个人房间功能
This commit is contained in:
2026-01-10 21:26:15 +08:00
parent ce47bd6eeb
commit ed7d89e39d
21 changed files with 973 additions and 39 deletions

View File

@@ -48,10 +48,10 @@ var player_max_energy: int = 100
func _ready():
# 初始化游戏状态
# setup_game()
setup_game()
# [TEST] 临时绕过登录
call_deferred("_on_login_success", "LocalTester")
# call_deferred("_on_login_success", "LocalTester")
# 连接登录成功信号
auth_scene.login_success.connect(_on_login_success)
@@ -97,14 +97,14 @@ func _setup_test_environment():
var map_instance = map_res.instantiate()
add_child(map_instance)
# 3. 加载玩家
var player_res = load("res://Scenes/characters/player.tscn")
if player_res:
var player_instance = player_res.instantiate()
player_instance.position = Vector2(800, 600) # 设置初始位置
map_instance.add_child(player_instance)
else:
print("错误: 无法加载玩家场景")
# 3. 加载玩家 - 交由 BaseLevel 或场景脚本动态处理
# var player_res = load("res://Scenes/characters/player.tscn")
# if player_res:
# var player_instance = player_res.instantiate()
# player_instance.position = Vector2(800, 600) # 设置初始位置
# map_instance.add_child(player_instance)
# else:
# print("错误: 无法加载玩家场景")
else:
print("错误: 无法加载广场地图")
@@ -114,10 +114,15 @@ func update_player_status():
exp_label.text = "经验: " + str(player_exp) + "/" + str(player_max_exp)
energy_label.text = "体力: " + str(player_energy) + "/" + str(player_max_energy)
func _on_login_success(username: String):
func _on_login_success(username: String, token: String):
# 登录成功后的处理
current_user = username
print("用户 ", username, " 登录成功!")
# 连接到游戏服务器
WebSocketManager.set_auth_token(token)
WebSocketManager.connect_to_server()
show_main_game()
func _on_logout_pressed():