From 19f8294242bbc8a82f963ae21c435d1f5a5cfa8d Mon Sep 17 00:00:00 2001 From: chen Date: Sat, 8 Aug 2026 17:30:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20HUD=20=E7=81=B5=E6=B0=94=E6=B5=93?= =?UTF-8?q?=E5=BA=A6=E6=98=BE=E7=A4=BA=20+=20=E5=AD=97=E4=BD=93=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E9=85=8D=E7=BD=AE=E5=8C=96=EF=BC=88[ui]=20=E8=8A=82?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/game_config.cfg | 3 +++ src/Core/GameConfig.gd | 6 ++++++ src/UI/HUD/TopBarHUD.tscn | 15 +++++++++++++++ src/UI/HUD/top_bar_hud.gd | 14 ++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/resources/game_config.cfg b/resources/game_config.cfg index 076a7bb..4fecc9a 100644 --- a/resources/game_config.cfg +++ b/resources/game_config.cfg @@ -24,3 +24,6 @@ base_speed=10 ; 基础修为/日 qi_concentration=1.0 ; 宗门灵气浓度 aptitude_speed=[0.6, 1.0, 1.5, 2.0] ; 资质倍率(下品/中品/上品/天骄) heavenly_bonus=1.5 ; 天灵根额外修炼速度倍率 + +[ui] ; UI 通用 +hud_font_size=28 ; HUD 字体大小 diff --git a/src/Core/GameConfig.gd b/src/Core/GameConfig.gd index 4f3d77e..a168d95 100644 --- a/src/Core/GameConfig.gd +++ b/src/Core/GameConfig.gd @@ -32,6 +32,10 @@ var aptitude_speed: Array[float] = [0.6, 1.0, 1.5, 2.0] ## 天灵根额外修炼速度倍率。 var heavenly_bonus := 1.5 +# —— UI 通用(对应 cfg 的 [ui] 节)—— +## HUD 字体大小。 +var hud_font_size := 32 + ## 各难度资质权重表(键 = 难度档位,值 = 下品/中品/上品/天骄 权重)。 var aptitude_weights_by_difficulty: Dictionary = { "normal": [45, 35, 15, 5], @@ -65,6 +69,8 @@ func _load_config() -> void: cultivation_base_speed = cfg.get_value("cultivation", "base_speed", cultivation_base_speed) qi_concentration = cfg.get_value("cultivation", "qi_concentration", qi_concentration) heavenly_bonus = cfg.get_value("cultivation", "heavenly_bonus", heavenly_bonus) + # UI 通用 + hud_font_size = cfg.get_value("ui", "hud_font_size", hud_font_size) var apt_raw: Variant = cfg.get_value("cultivation", "aptitude_speed", []) if apt_raw is Array and apt_raw.size() == aptitude_speed.size(): var arr: Array[float] = [] diff --git a/src/UI/HUD/TopBarHUD.tscn b/src/UI/HUD/TopBarHUD.tscn index eedeabc..96f64e7 100644 --- a/src/UI/HUD/TopBarHUD.tscn +++ b/src/UI/HUD/TopBarHUD.tscn @@ -68,6 +68,21 @@ size_flags_vertical = 8 size_flags_stretch_ratio = 2.0 label_settings = SubResource("LabelSettings_bn2o5") +[node name="Label_Qi" type="Label" parent="HBoxContainer" unique_id=790000001] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 8 +text = "灵气" +label_settings = SubResource("LabelSettings_bn2o5") + +[node name="Value_Qi" type="Label" parent="HBoxContainer" unique_id=790000002] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 8 +size_flags_stretch_ratio = 2.0 +label_settings = SubResource("LabelSettings_bn2o5") + [node name="SpeedGroup" type="HBoxContainer" parent="HBoxContainer" unique_id=2144893126] layout_mode = 2 size_flags_horizontal = 3 diff --git a/src/UI/HUD/top_bar_hud.gd b/src/UI/HUD/top_bar_hud.gd index 0b4b7ff..7125cf1 100644 --- a/src/UI/HUD/top_bar_hud.gd +++ b/src/UI/HUD/top_bar_hud.gd @@ -10,6 +10,7 @@ signal sign_open_disciples @onready var time_label: Label = %Value_Time @onready var currency_label: Label = %Value_Currency @onready var reputation_label: Label = %Value_Reputation +@onready var qi_label: Label = %Value_Qi @onready var pause_button: Button = %Button_Pause @onready var speed_buttons: Array[Button] = [%Button_Speed1, %Button_Speed5, %Button_Speed20] @@ -25,7 +26,10 @@ func _ready() -> void: SectManager.reputation_changed.connect(_on_reputation_changed) currency_label.text = str(SectManager.spirit_stones) reputation_label.text = str(SectManager.reputation) + # 灵气浓度:当前为配置固定值(D6 建筑系统接入后动态刷新) + qi_label.text = "%d%%" % roundi(GameConfig.qi_concentration * 100) time_label.text = TimeSystem.get_date_text() + _apply_hud_font() _update_speed_ui() ## 每日推进时刷新日期显示。 @@ -61,6 +65,16 @@ func _on_speed_button_up(index: int) -> void: TimeSystem.set_speed_index(index) _update_speed_ui() +## 应用配置中的 HUD 字体大小(GameConfig.hud_font_size)。 +## 标签共用同一 LabelSettings 资源,改一处全生效;按钮逐个覆盖。 +func _apply_hud_font() -> void: + var size := GameConfig.hud_font_size + var settings: LabelSettings = $HBoxContainer/Label_Currency.label_settings + if settings != null: + settings.font_size = size + for btn in $HBoxContainer.find_children("*", "Button", true, false): + btn.add_theme_font_size_override("font_size", size) + ## 刷新速度组 UI:暂停按钮文字与各档位按下状态。 ## 选中档位用 toggle 的 pressed 状态表达(原生高亮),暂停时禁用档位按钮。 func _update_speed_ui() -> void: