ghost-delivery/addons/vision_cone_2d/examples/enemy.gd

34 lines
1.1 KiB
GDScript

extends CharacterBody2D
@export var vision_renderer: Polygon2D
@export var alert_color: Color
@export_group("Rotation")
@export var is_rotating = false
@export var rotation_speed = 0.1
@export var rotation_angle = 90
@export_group("Movement")
@export var move_on_path: PathFollow2D
@export var movement_speed = 0.1
@onready var pos_start = position.x
@onready var original_color = vision_renderer.color if vision_renderer else Color.WHITE
@onready var rot_start = rotation
func _on_vision_cone_area_body_entered(body: Node2D) -> void:
# print("%s is seeing %s" % [self, body])
vision_renderer.color = alert_color
func _on_vision_cone_area_body_exited(body: Node2D) -> void:
# print("%s stopped seeing %s" % [self, body])
vision_renderer.color = original_color
func _physics_process(delta: float) -> void:
if is_rotating:
rotation = rot_start + sin(Time.get_ticks_msec()/1000. * rotation_speed) * deg_to_rad(rotation_angle/2.)
if move_on_path:
move_on_path.progress += movement_speed
global_position = move_on_path.position
rotation = move_on_path.rotation