33 lines
1018 B
GDScript
33 lines
1018 B
GDScript
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)
|