- 添加登录场景(login_scene.tscn)和主菜单场景(main_menu_scene.tscn) - 实现认证管理器(AuthManager)用于用户登录和会话管理 - 添加核心服务:加密服务、存储服务、网络服务 - 配置项目主场景为登录场景 - 添加自动加载服务到项目配置 - 添加开发环境配置(VSCode、Claude) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
38 lines
1.1 KiB
GDScript
38 lines
1.1 KiB
GDScript
extends Control
|
|
|
|
## 主菜单界面控制器
|
|
## 显示用户信息并提供退出登录功能
|
|
|
|
@onready var welcomeLabel: Label = $centerContainer/vboxContainer/welcomeLabel
|
|
@onready var userInfoLabel: Label = $centerContainer/vboxContainer/userInfoLabel
|
|
@onready var logoutButton: Button = $centerContainer/vboxContainer/logoutButton
|
|
|
|
func _ready():
|
|
# 连接退出登录按钮
|
|
logoutButton.pressed.connect(_onLogoutPressed)
|
|
|
|
# 连接 AuthManager 信号
|
|
AuthManager.logout_success.connect(_onLogoutSuccess)
|
|
|
|
# 显示用户信息
|
|
_displayUserInfo()
|
|
|
|
## 显示用户信息
|
|
func _displayUserInfo() -> void:
|
|
var currentUser = AuthManager.getCurrentUser()
|
|
|
|
if currentUser != null:
|
|
userInfoLabel.text = "用户名:%s\n等级:%d" % [currentUser.username, currentUser.level]
|
|
else:
|
|
userInfoLabel.text = "未登录"
|
|
|
|
## 退出登录按钮点击事件
|
|
func _onLogoutPressed() -> void:
|
|
# 调用 AuthManager 登出
|
|
AuthManager.logout()
|
|
|
|
## 登出成功回调
|
|
func _onLogoutSuccess() -> void:
|
|
# 返回登录界面
|
|
get_tree().change_scene_to_file("res://scenes/login_scene.tscn")
|