45 lines
1.2 KiB
GDScript
45 lines
1.2 KiB
GDScript
extends Node2D
|
|
|
|
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
|
|
@onready var wait_timer: Timer = $WaitTimer
|
|
@onready var collision_shape_2d: CollisionShape2D = $Area2D/CollisionShape2D
|
|
@onready var death_collision_box: CollisionShape2D = $DeathBox/DeathCollisionBox
|
|
|
|
var direction :float = 1.0
|
|
const SPEED = 150
|
|
|
|
signal player_died
|
|
var wait :bool = false
|
|
|
|
func _process(delta: float) -> void:
|
|
if !wait:
|
|
position.x += direction * SPEED * delta
|
|
|
|
func _on_area_2d_body_entered(body: Node2D) -> void:
|
|
if body.name == "player":
|
|
emit_signal("player_died", body)
|
|
else:
|
|
wait = true
|
|
_death_box_enabled()
|
|
animated_sprite_2d.animation = "idle"
|
|
animated_sprite_2d.flip_h = !animated_sprite_2d.flip_h
|
|
wait_timer.start()
|
|
|
|
|
|
func _on_wait_timer_timeout() -> void:
|
|
animated_sprite_2d.animation = "run"
|
|
_death_box_disabled()
|
|
wait = false
|
|
direction *= -1
|
|
|
|
func _death_box_enabled() -> void:
|
|
collision_shape_2d.set_deferred("disabled", true)
|
|
death_collision_box.set_deferred("disabled", false)
|
|
|
|
func _death_box_disabled() -> void:
|
|
collision_shape_2d.set_deferred("disabled", false)
|
|
death_collision_box.set_deferred("disabled", true)
|
|
|
|
func _on_death_box_body_entered(body: Node2D) -> void:
|
|
print("Dead")
|