frame-of-mind/src/ui/credits_roll/credits_roll.gd

44 lines
1.1 KiB
GDScript3
Raw Normal View History

extends Control
@onready var Handle : Control = $Handle
@export var scroll_speed: float = 50.0
var original : Vector2
var offset : Vector2
var playing : bool
func _ready() -> void:
print_debug("credits_roll.gd: _ready()")
original = Handle.position
2025-12-15 16:57:26 +00:00
set_process_input(false)
func _process(delta: float) -> void:
if playing:
offset.y -= scroll_speed * delta
Handle.position = offset
func _input(event: InputEvent) -> void:
if event.is_action_pressed("ui_menu") or event.is_action_pressed("ui_cancel") or event.is_action_pressed("ui_accept"):
stop()
func play() -> void:
print_debug("credits_roll.gd: show()")
2025-12-15 16:57:26 +00:00
set_process_input(true)
offset = original
Handle.position = original
playing = true
modulate.a = 0
visible = true
var tween := create_tween()
tween.tween_property(self, "modulate:a", 1.0, 5.0)
await tween.finished
func stop() -> void:
print_debug("credits_roll.gd: hide()")
2025-12-15 16:57:26 +00:00
set_process_input(false)
var tween := create_tween()
tween.tween_property(self, "modulate:a", 0.0, 2.0)
await tween.finished
playing = false
visible = false