AprilGodotGame/scripts/slime.gd

25 lines
801 B
GDScript3
Raw Normal View History

class_name Slime extends Area2D
signal playerDamageSignal(body, slime)
@onready var right_side_cast: RayCast2D = $RightSideCast
@onready var left_side_cast: RayCast2D = $LeftSideCast
@onready var right_down_cast: RayCast2D = $RightDownCast
@onready var left_down_cast: RayCast2D = $LeftDownCast
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
var speed = 100
var direction = 1
func _process(delta: float) -> void:
if not right_down_cast.is_colliding() or right_side_cast.is_colliding():
direction = -1
sprite.flip_h = true
if not left_down_cast.is_colliding() or left_side_cast.is_colliding():
direction = 1
sprite.flip_h = false
position.x += direction * speed * delta
func _on_body_entered(body: Node2D) -> void:
print("Slime Contact")
playerDamageSignal.emit(body, self)