changed menu navigation

This commit is contained in:
Fabio 2024-08-20 00:41:10 +02:00
parent 9b890c6bd2
commit 033718351e
7 changed files with 248 additions and 33 deletions

View file

@ -1,38 +1,72 @@
extends Control
var credits_text = """
SECTOR COMPLETED
CREDITS:
-----------
Programming: Jannis, Fabio
Pixel Art : Leon
Music: TBN
"""
var current_text = ""
var char_index = 0
var typing_speed = 0.05 # Normale Tippgeschwindigkeit
var fast_typing_speed = 0.01 # Schnellere Tippgeschwindigkeit
var is_fast_typing = false # Statusvariable für schnelleres Tippen
# Zum Überprüfen eines Doppelklicks
var typing_speed = 0.05
var fast_typing_speed = 0.0001
var last_click_time = 0.0
var double_click_time = 0.3 # Zeitfenster für Doppelklick in Sekunden
var double_click_time = 0.3
var is_typing = true
var current_button_index = 0
var button
func _ready():
_initialize_menu()
_start_typing()
func _process(_delta: float) -> void:
# Überprüfe, ob eine Taste oder Maustaste gedrückt gehalten wird
if Input.is_action_pressed("ui_accept") or Input.is_action_pressed("ui_accept"):
if get_time_since_last_click() <= double_click_time:
_show_full_text()
else:
is_fast_typing = true
else:
is_fast_typing = false
func _initialize_menu():
button = $VBoxContainer/BackToMenu
_update_button_visibility()
_blink_current_button()
typing_speed = fast_typing_speed if is_fast_typing else 0.05
func _update_button_visibility():
var hbox_container = button
var label_node = hbox_container.get_child(0)
if label_node != null:
label_node.visible
func _process(_delta: float) -> void:
if not is_typing:
if Input.is_action_pressed("ui_accept"):
typing_speed = fast_typing_speed
func _blink_current_button() -> void:
while true:
var hbox_container = button
var label_node = hbox_container.get_child(0)
if label_node != null:
label_node.visible = true
await get_tree().create_timer(0.5).timeout
if label_node != null:
label_node.visible = false
await get_tree().create_timer(0.5).timeout
func _unhandled_input(event: InputEvent) -> void:
if is_typing:
if event is InputEventKey and event.is_pressed():
if get_time_since_last_click() <= double_click_time:
_show_full_text()
else:
typing_speed = fast_typing_speed
elif event is InputEventKey and not event.is_pressed():
typing_speed = 0.05
else:
if event.is_action_pressed("ui_accept"):
button.get_child(1).emit_signal("pressed")
func _start_typing() -> void:
current_text = ""
char_index = 0
is_typing = true
_update_text()
func _update_text() -> void:
@ -43,18 +77,20 @@ func _update_text() -> void:
await get_tree().create_timer(typing_speed).timeout
_update_text()
else:
is_typing = false
_show_menu_options()
func _show_menu_options() -> void:
$VBoxContainer/BackToMenu.visible = true
func _return_to_main_menu() -> void:
get_tree().change_scene_to_file("res://menu/level_menu/level_select.tscn")
get_tree().change_scene_to_file("res://menu/main_menu/MainMenu.tscn")
func _show_full_text() -> void:
current_text = credits_text
$VBoxContainer/Label.text = current_text
char_index = credits_text.length()
is_typing = false
_show_menu_options()
func get_time_since_last_click() -> float: