41 lines
1.3 KiB
GDScript
41 lines
1.3 KiB
GDScript
extends StaticBody2D
|
|
|
|
var player_nearby = false
|
|
var is_down = false
|
|
|
|
func _ready():
|
|
# Memastikan script tetap berjalan jika nanti game di-pause
|
|
process_mode = Node.PROCESS_MODE_ALWAYS
|
|
print("Sistem Jembatan Aktif! Menunggu Wayan mendekat...")
|
|
|
|
func _process(_delta):
|
|
# Kita cek apakah tombol F ditekan sama sekali
|
|
if Input.is_action_just_pressed("interact"):
|
|
if player_nearby:
|
|
print("Berhasil! Tombol F ditekan di dalam area. Menggerakkan jembatan...")
|
|
toggle_bridge()
|
|
|
|
|
|
func toggle_bridge():
|
|
var tween = create_tween()
|
|
if not is_down:
|
|
# Bergerak Rebah
|
|
tween.tween_property(self, "rotation_degrees", 90, 1.2).set_trans(Tween.TRANS_QUART).set_ease(Tween.EASE_OUT)
|
|
is_down = true
|
|
else:
|
|
# Bergerak Tegak
|
|
tween.tween_property(self, "rotation_degrees", 0, 1.2).set_trans(Tween.TRANS_QUART).set_ease(Tween.EASE_OUT)
|
|
is_down = false
|
|
|
|
# Sambungkan signal body_entered dari Area2D ke sini
|
|
func _on_area_2d_body_entered(body):
|
|
if body.name == "Player": # Pastikan nama node karaktermu sesuai (cek besar kecil hurufnya)
|
|
print("Wayan masuk area jembatan. Siap tekan F!")
|
|
player_nearby = true
|
|
|
|
# Sambungkan signal body_exited dari Area2D ke sini
|
|
func _on_area_2d_body_exited(body):
|
|
if body.name == "Player":
|
|
print("Wayan keluar area jembatan.")
|
|
player_nearby = false
|