extends Area2D @onready var label = $CanvasLayer2/LabelCerita var sudah_muncul = false # Supaya cuma muncul sekali func _ready(): label.visible_characters = 0 # Sembunyikan teks di awal label.modulate.a = 0 # Bikin transparan total (fade out) func _on_body_entered(body): # Cek apakah yang masuk itu pemain dan belum pernah muncul if body.name == "Player" and not sudah_muncul: sudah_muncul = true tampilkan_teks() func tampilkan_teks(): # 1. Animasi Fade In (Muncul pelan-pelan) var tween = create_tween() tween.tween_property(label, "modulate:a", 1.0, 0.5) # 2. Animasi Huruf per Huruf (Mesin Tik) # Menggerakkan visible_characters dari 0 ke jumlah total huruf var durasi_ketik = 1.5 # Makin besar makin lambat ketiknya tween.tween_property(label, "visible_characters", label.text.length(), durasi_ketik) # 3. Tunggu sebentar lalu Fade Out await get_tree().create_timer(2.0 + durasi_ketik).timeout var tween_out = create_tween() tween_out.tween_property(label, "modulate:a", 0.0, 1.0)