fix: set font size via property path theme_override_font_sizes/font_size
This commit is contained in:
parent
9e52224dc9
commit
f5c7defd87
1 changed files with 30 additions and 14 deletions
|
|
@ -6,8 +6,12 @@ extends Control
|
|||
@onready var transition_overlay: ColorRect = %TransitionOverlay
|
||||
@onready var vbox: VBoxContainer = %VBox
|
||||
|
||||
var _v_end_size: int
|
||||
var _p_end_size: int
|
||||
var _elapsed: float = 0.0
|
||||
var _animating: bool = false
|
||||
var _v_start: int
|
||||
var _v_end: int
|
||||
var _p_start: int
|
||||
var _p_end: int
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
|
|
@ -16,13 +20,15 @@ func _ready() -> void:
|
|||
|
||||
var screen_size: Vector2 = get_viewport_rect().size
|
||||
|
||||
# Enormous end font sizes — a large fraction of screen height.
|
||||
_v_end_size = maxi(1, int(screen_size.y * 0.55))
|
||||
_p_end_size = maxi(1, int(screen_size.y * 0.30))
|
||||
# Compute end font sizes as a large fraction of screen height.
|
||||
# Use set() to go through the property system directly.
|
||||
_v_end = maxi(1, int(screen_size.y * 0.55))
|
||||
_p_end = maxi(1, int(screen_size.y * 0.30))
|
||||
_v_start = 4
|
||||
_p_start = 4
|
||||
|
||||
# Start tiny and invisible
|
||||
v_label.add_theme_font_size_override("normal_font_size", 4)
|
||||
panel_label.add_theme_font_size_override("normal_font_size", 4)
|
||||
_set_v_size(_v_start)
|
||||
_set_p_size(_p_start)
|
||||
vbox.modulate = Color(1, 1, 1, 0)
|
||||
transition_overlay.color = Color(0, 0, 0, 1)
|
||||
|
||||
|
|
@ -33,13 +39,15 @@ func _ready() -> void:
|
|||
reveal.tween_property(transition_overlay, "color", Color(0, 0, 0, 0), 0.4)
|
||||
await reveal.finished
|
||||
|
||||
# Phase 1: Grow font sizes + fade in (parallel)
|
||||
# Pure font-size animation — no transforms, no containers to fight.
|
||||
# Phase 1: Animate font sizes up + fade in
|
||||
_elapsed = 0.0
|
||||
_animating = true
|
||||
var grow := create_tween()
|
||||
grow.set_parallel(true)
|
||||
grow.tween_method(_set_sizes, 0.0, 1.0, 2.0).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK)
|
||||
grow.tween_property(vbox, "modulate", Color(1, 1, 1, 1), 1.8).set_ease(Tween.EASE_OUT)
|
||||
await grow.finished
|
||||
_animating = false
|
||||
|
||||
# Phase 2: Hold
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
|
|
@ -66,8 +74,16 @@ func _ready() -> void:
|
|||
queue_free()
|
||||
|
||||
|
||||
func _set_v_size(px: int) -> void:
|
||||
v_label.set("theme_override_font_sizes/font_size", px)
|
||||
|
||||
|
||||
func _set_p_size(px: int) -> void:
|
||||
panel_label.set("theme_override_font_sizes/font_size", px)
|
||||
|
||||
|
||||
func _set_sizes(progress: float) -> void:
|
||||
var v_size: int = maxi(1, int(round(4 + progress * (_v_end_size - 4))))
|
||||
var p_size: int = maxi(1, int(round(4 + progress * (_p_end_size - 4))))
|
||||
v_label.add_theme_font_size_override("normal_font_size", v_size)
|
||||
panel_label.add_theme_font_size_override("normal_font_size", p_size)
|
||||
var v_size: int = maxi(1, int(round(_v_start + progress * (_v_end - _v_start))))
|
||||
var p_size: int = maxi(1, int(round(_p_start + progress * (_p_end - _p_start))))
|
||||
_set_v_size(v_size)
|
||||
_set_p_size(p_size)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue