From 06fd7a0fad8acd4e7403dec29d7ae61b873933ad Mon Sep 17 00:00:00 2001 From: enne2 Date: Thu, 10 Sep 2026 23:18:54 +0200 Subject: [PATCH] style: align and refine bottom bar layout with title, description and play button --- menus/scripts/screens/p1_home_screen.gd | 49 ++++++++++++++----------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/menus/scripts/screens/p1_home_screen.gd b/menus/scripts/screens/p1_home_screen.gd index f163f9f..451e31b 100644 --- a/menus/scripts/screens/p1_home_screen.gd +++ b/menus/scripts/screens/p1_home_screen.gd @@ -244,26 +244,27 @@ func _transition_bottom_bar(which: String) -> void: piedone_tween = create_tween() piedone_tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS) - # Se è già visibile/alzato, scende prima di risalire - if piedone.position.y < hidden_y * 0.5: - piedone_tween.tween_property(piedone, "position:y", hidden_y, 0.25).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) - piedone_tween.tween_callback(func(): _update_piedone_content(which)) - piedone_tween.tween_property(piedone, "position:y", v_height * 0.025, 0.45).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) - piedone_tween.tween_property(piedone, "position:y", target_y, 0.25).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT) - else: - # Parte da nascosto: aggiorna subito e sale - _update_piedone_content(which) - piedone_tween.tween_property(piedone, "position:y", v_height * 0.025, 0.60).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) - piedone_tween.tween_property(piedone, "position:y", target_y, 0.35).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT) + # Quando l'utente tocca un tendone, Piedone scende e si rialza aggiornato + piedone_tween.tween_property(piedone, "position:y", hidden_y, 0.25).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_IN) + piedone_tween.tween_callback(func(): _update_piedone_content(which)) + piedone_tween.tween_property(piedone, "position:y", v_height * 0.025, 0.45).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) + piedone_tween.tween_property(piedone, "position:y", target_y, 0.25).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT) func _update_piedone_content(which: String) -> void: + piedone_play.visible = true + # Riposiziona il titolo sopra alla descrizione + MenuUI.set_normalized_rect(piedone_title, Vector2(0.38, 0.845), Vector2(0.52, 0.065)) + piedone_title.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT + if which == "juggle": piedone_title.text = "JUGGLEBOARD" piedone_desc.text = "Allena ritmo e coordinazione con le biglie e i lanci a bersaglio." elif which == "gym": piedone_title.text = "PALESTRA DI GIOCOLERIA" piedone_desc.text = "Scopri gli attrezzi del circo: clave, palline, piatti e rola bola." + + piedone_desc.visible = true func _on_play_pressed() -> void: @@ -274,7 +275,7 @@ func _on_play_pressed() -> void: func _add_bottom_bar() -> void: - # Il piedone parte abbassato/nascosto all'avvio. + # Piedone parte nascosto e sale all'avvio con testo centrale "Tocca uno dei tendoni" piedone = Control.new() piedone.name = "Piedone" piedone.mouse_filter = Control.MOUSE_FILTER_IGNORE @@ -294,24 +295,25 @@ func _add_bottom_bar() -> void: piedone.add_child(rule) MenuUI.set_normalized_rect(rule, Vector2(0.50, item[0]), Vector2(1.0, item[1] / 720.0)) - # Titolo del gioco selezionato - piedone_title = MenuUI.add_label(piedone, "", Vector2(0.28, 0.84), Vector2(0.46, 0.07), 24) - piedone_title.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT + # Titolo / invito iniziale: allineato armoniosamente nella colonna sinistra + piedone_title = MenuUI.add_label(piedone, "Tocca uno dei tendoni", Vector2(0.38, 0.885), Vector2(0.52, 0.09), 26) + piedone_title.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER - # Descrizione del gioco + # Descrizione del gioco: posizionata direttamente sotto al titolo piedone_desc = Label.new() piedone_desc.text = "" piedone_desc.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT piedone_desc.vertical_alignment = VERTICAL_ALIGNMENT_TOP piedone_desc.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART piedone_desc.add_theme_font_override("font", MenuUI.DISPLAY_FONT) - piedone_desc.add_theme_font_size_override("font_size", 16) + piedone_desc.add_theme_font_size_override("font_size", 17) piedone_desc.add_theme_color_override("font_color", Color("#423832")) piedone_desc.mouse_filter = Control.MOUSE_FILTER_IGNORE + piedone_desc.visible = false piedone.add_child(piedone_desc) - MenuUI.set_normalized_rect(piedone_desc, Vector2(0.28, 0.92), Vector2(0.46, 0.08)) + MenuUI.set_normalized_rect(piedone_desc, Vector2(0.38, 0.925), Vector2(0.52, 0.08)) - # Pulsante GIOCA sul lato destro del piedone + # Pulsante GIOCA sul lato destro del piedone (coerente con i mockup P1 e P2a) piedone_play = TextureButton.new() piedone_play.ignore_texture_size = true piedone_play.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED @@ -322,12 +324,17 @@ func _add_bottom_bar() -> void: piedone_play.mouse_entered.connect(func(): piedone_play.modulate = Color(1.08, 1.08, 1.08, 1.0)) piedone_play.mouse_exited.connect(func(): piedone_play.modulate = Color.WHITE) piedone_play.pressed.connect(_on_play_pressed) + piedone_play.visible = false piedone.add_child(piedone_play) - MenuUI.set_normalized_rect(piedone_play, Vector2(0.79, 0.88), Vector2(0.24, 0.13)) + MenuUI.set_normalized_rect(piedone_play, Vector2(0.79, 0.885), Vector2(0.26, 0.14)) - # Parte nascosto sotto lo schermo + # Parte nascosto sotto lo schermo e si anima verso l'alto con rimbalzo elastico var viewport_height := get_viewport_rect().size.y piedone.position.y = viewport_height * 0.29 + var intro_tween := create_tween() + intro_tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS) + intro_tween.tween_property(piedone, "position:y", viewport_height * 0.025, 0.85).set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT) + intro_tween.tween_property(piedone, "position:y", 0.0, 0.42).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT) func _add_sign() -> void: