MIF_E31230535/gate.gd

49 lines
1.4 KiB
GDScript

extends StaticBody2D
var player_dekat = false
var is_open = false
func _ready():
# Menghubungkan sensor supaya tahu kalau robot datang atau pergi
$Sensor.body_entered.connect(_on_sensor_body_entered)
$Sensor.body_exited.connect(_on_sensor_body_exited)
func _on_sensor_body_entered(body):
if body.name == "Player":
player_dekat = true
print("Tekan F untuk membuka gerbang!")
func _on_sensor_body_exited(body):
if body.name == "Player":
player_dekat = false
func _input(event):
if event.is_action_pressed("interact") and player_dekat:
tanya_pertanyaan()
func tanya_pertanyaan():
# Simulasi jawaban benar
var jawaban_benar = true
if jawaban_benar:
toggle_gate()
func toggle_gate():
is_open = !is_open
# Buat animasi perubahan gambar
var tween = create_tween()
if is_open:
# MEMBUKA: Matikan tabrakan dan buat gambar melebar (misal jadi 2.5 kali lipat)
$CollisionShape2D.set_deferred("disabled", true)
# Ganti TRANS_EASE_OUT menjadi EASE_OUT
tween.tween_property($Sprite2D, "scale:x", 0.5, 0.4).set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_OUT)
print("Gerbang Terbuka!")
else:
# MENUTUP: Aktifkan tabrakan dan kembalikan gambar ke ukuran normal (1.0)
$CollisionShape2D.set_deferred("disabled", false)
# Ganti TRANS_EASE_OUT menjadi EASE_OUT
tween.tween_property($Sprite2D, "scale:x", 0.1, 0.4).set_trans(Tween.TRANS_BACK).set_ease(Tween.EASE_OUT)
print("Gerbang Tertutup!")