GMTK-2024/gmtk_2024/scripts/menu_main_control.gd

84 lines
2.2 KiB
GDScript3
Raw Normal View History

2024-08-17 12:36:44 +02:00
extends Control
var display_text = """
SYSTEM INITIALIZATION...
---------------------------------------
2024-08-19 19:59:11 +02:00
PLACEHOLDER GAME NAME BOOT SEQUENCE
2024-08-17 12:36:44 +02:00
COPYRIGHT PLACEHOLDER
2024-08-19 19:59:11 +02:00
MADE FOR GMTK GAME JAM 2024
2024-08-17 12:36:44 +02:00
>> WARNING:
>> RECOMMENDED ACTION:
SYSTEM READY.
2024-08-19 19:59:11 +02:00
PRESS START TO GET ACCESS.
2024-08-17 12:36:44 +02:00
"""
var current_text = ""
var char_index = 0
var typing_speed = 0.05
2024-08-19 19:59:11 +02:00
var fast_typing_speed = 0.0001
var last_click_time = 0.0
var double_click_time = 0.3
2024-08-17 12:36:44 +02:00
func _ready():
2024-08-19 19:59:11 +02:00
for hbox in $VBoxContainer/Buttons.get_children():
2024-08-17 12:36:44 +02:00
hbox.visible = false
_start_typing()
2024-08-19 19:59:11 +02:00
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("ui_accept") or event is InputEventMouseButton:
if get_time_since_last_click() <= double_click_time:
_show_full_text()
else:
typing_speed = fast_typing_speed
else:
typing_speed = 0.05
2024-08-19 19:59:11 +02:00
2024-08-17 12:57:20 +02:00
func _process(_delta: float) -> void:
pass # typing_speed = 0.05 # Zurück zur normalen Geschwindigkeit
2024-08-17 12:36:44 +02:00
func _start_typing() -> void:
current_text = ""
char_index = 0
_update_text()
func _update_text() -> void:
if char_index < display_text.length():
current_text += display_text[char_index]
$VBoxContainer/VBoxContainer2/Label.text = current_text
char_index += 1
await get_tree().create_timer(typing_speed).timeout
_update_text()
else:
_show_menu_options()
func _show_menu_options() -> void:
2024-08-19 19:59:11 +02:00
for hbox in $VBoxContainer/Buttons.get_children():
2024-08-17 12:36:44 +02:00
hbox.visible = true
2024-08-19 19:59:11 +02:00
func _show_full_text() -> void:
current_text = display_text
$VBoxContainer/VBoxContainer2/Label.text = current_text
char_index = display_text.length()
_show_menu_options()
func get_time_since_last_click() -> float:
var current_time = Time.get_ticks_msec() / 1000.0 # Zeit in Sekunden
var time_since_last_click = current_time - last_click_time
last_click_time = current_time
return time_since_last_click
2024-08-17 12:36:44 +02:00
func _on_start_button_pressed() -> void:
2024-08-17 18:06:43 +02:00
get_tree().change_scene_to_file("res://menu/level_menu/level_select.tscn")
2024-08-17 12:36:44 +02:00
func _on_credits_button_pressed() -> void:
2024-08-17 12:57:20 +02:00
get_tree().change_scene_to_file("res://menu/main_menu/CreditsScene.tscn")
2024-08-17 12:36:44 +02:00
func _on_quit_button_pressed() -> void:
2024-08-17 12:57:20 +02:00
$VBoxContainer/VBoxContainer2/Label.text += "\nLogging out!"
2024-08-17 12:36:44 +02:00
await get_tree().create_timer(0.5).timeout
get_tree().quit()