refactor:将MainScene移动到scenes根目录

- 将MainScene从scenes/Maps/移动到scenes/根目录
- 更新project.godot中的主场景路径配置
- 符合项目结构规范,MainScene作为图像显示入口文件
This commit is contained in:
2026-01-02 21:17:56 +08:00
parent 29c6740870
commit d256249789
5 changed files with 16 additions and 5 deletions

View File

@@ -1,116 +0,0 @@
extends Control
# 场景节点引用
@onready var auth_scene: Control = $AuthScene
@onready var main_game_ui: Control = $MainGameUI
@onready var user_label: Label = $MainGameUI/TopBar/HBoxContainer/UserLabel
@onready var logout_button: Button = $MainGameUI/TopBar/HBoxContainer/LogoutButton
# 游戏功能按钮
@onready var explore_button: Button = $MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid/ExploreButton
@onready var inventory_button: Button = $MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid/InventoryButton
@onready var shop_button: Button = $MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid/ShopButton
@onready var friends_button: Button = $MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid/FriendsButton
# 状态标签
@onready var level_label: Label = $MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid/LevelLabel
@onready var coins_label: Label = $MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid/CoinsLabel
@onready var exp_label: Label = $MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid/ExpLabel
@onready var energy_label: Label = $MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid/EnergyLabel
# 游戏状态
enum GameState {
AUTH, # 登录/注册状态
MAIN_GAME # 主游戏状态
}
var current_state: GameState = GameState.AUTH
var current_user: String = ""
# 玩家数据
var player_level: int = 1
var player_coins: int = 100
var player_exp: int = 0
var player_max_exp: int = 100
var player_energy: int = 100
var player_max_energy: int = 100
func _ready():
# 初始化游戏状态
setup_game()
# 连接登录成功信号
auth_scene.login_success.connect(_on_login_success)
# 连接按钮信号
logout_button.pressed.connect(_on_logout_pressed)
explore_button.pressed.connect(_on_explore_pressed)
inventory_button.pressed.connect(_on_inventory_pressed)
shop_button.pressed.connect(_on_shop_pressed)
friends_button.pressed.connect(_on_friends_pressed)
func setup_game():
# 设置初始状态为登录界面
show_auth_scene()
func show_auth_scene():
current_state = GameState.AUTH
auth_scene.visible = true
main_game_ui.visible = false
func show_main_game():
current_state = GameState.MAIN_GAME
auth_scene.visible = false
main_game_ui.visible = true
user_label.text = "当前用户: " + current_user
update_player_status()
print("进入主游戏界面")
func update_player_status():
level_label.text = "等级: " + str(player_level)
coins_label.text = "金币: " + str(player_coins)
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):
# 登录成功后的处理
current_user = username
print("用户 ", username, " 登录成功!")
show_main_game()
func _on_logout_pressed():
# 登出处理
current_user = ""
show_auth_scene()
# 游戏功能按钮处理
func _on_explore_pressed():
print("探索小镇功能")
show_game_message("🗺️ 探索功能开发中...")
func _on_inventory_pressed():
print("背包功能")
show_game_message("🎒 背包功能开发中...")
func _on_shop_pressed():
print("商店功能")
show_game_message("🏪 商店功能开发中...")
func _on_friends_pressed():
print("好友功能")
show_game_message("👥 好友功能开发中...")
func show_game_message(message: String):
print("游戏消息: ", message)
# 这里可以添加UI提示框显示消息
# 处理全局输入
func _input(event):
if event.is_action_pressed("ui_cancel"):
match current_state:
GameState.AUTH:
# 在登录界面按ESC退出游戏
get_tree().quit()
GameState.MAIN_GAME:
# 在游戏中按ESC可能显示菜单或返回登录
show_auth_scene()

View File

@@ -1 +0,0 @@
uid://cn2xjgj3h847p

View File

@@ -1,121 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://21a49e14a0c58d7941d04142a5bf9ddc"]
[ext_resource type="Script" path="res://scenes/maps/MainScene.gd" id="1_script"]
[ext_resource type="PackedScene" uid="uid://by7m8snb4xllf" path="res://scenes/ui/LoginWindow.tscn" id="2_main"]
[node name="Main" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource("1_script")
[node name="AuthScene" parent="." instance=ExtResource("2_main")]
layout_mode = 1
[node name="MainGameUI" type="Control" parent="."]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
[node name="TopBar" type="Panel" parent="MainGameUI"]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 60.0
[node name="HBoxContainer" type="HBoxContainer" parent="MainGameUI/TopBar"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 20.0
offset_top = 10.0
offset_right = -20.0
offset_bottom = -10.0
[node name="UserLabel" type="Label" parent="MainGameUI/TopBar/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "当前用户: "
vertical_alignment = 1
[node name="LogoutButton" type="Button" parent="MainGameUI/TopBar/HBoxContainer"]
layout_mode = 2
text = "登出"
[node name="MainContent" type="Control" parent="MainGameUI"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 60.0
[node name="CenterContainer" type="CenterContainer" parent="MainGameUI/MainContent"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
[node name="VBoxContainer" type="VBoxContainer" parent="MainGameUI/MainContent/CenterContainer"]
layout_mode = 2
[node name="StatusPanel" type="Panel" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer"]
layout_mode = 2
custom_minimum_size = Vector2(400, 150)
[node name="StatusContainer" type="MarginContainer" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 20.0
offset_top = 20.0
offset_right = -20.0
offset_bottom = -20.0
[node name="StatusGrid" type="GridContainer" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer"]
layout_mode = 2
columns = 2
[node name="LevelLabel" type="Label" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid"]
layout_mode = 2
text = "等级: 1"
[node name="CoinsLabel" type="Label" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid"]
layout_mode = 2
text = "金币: 100"
[node name="ExpLabel" type="Label" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid"]
layout_mode = 2
text = "经验: 0/100"
[node name="EnergyLabel" type="Label" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer/StatusGrid"]
layout_mode = 2
text = "体力: 100/100"
[node name="GameMenuGrid" type="GridContainer" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer"]
layout_mode = 2
columns = 2
[node name="ExploreButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"]
layout_mode = 2
custom_minimum_size = Vector2(150, 50)
text = "🗺️ 探索小镇"
[node name="InventoryButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"]
layout_mode = 2
custom_minimum_size = Vector2(150, 50)
text = "🎒 背包"
[node name="ShopButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"]
layout_mode = 2
custom_minimum_size = Vector2(150, 50)
text = "🏪 商店"
[node name="FriendsButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"]
layout_mode = 2
custom_minimum_size = Vector2(150, 50)
text = "👥 好友"