summaryrefslogtreecommitdiff
path: root/Enemies/flying_enemy.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2024-09-28 15:27:57 +0200
committerDaniel Weipert <git@mail.dweipert.de>2024-09-28 15:27:57 +0200
commit6032b3dc82ccbb3710061059c90b7db40df19673 (patch)
treea99682fb23bcd8a1ddd01f4f137bee2d46fa4b1f /Enemies/flying_enemy.gd
parenta38f65c261e9d7b23d046cb76b5aeedc05c4b54d (diff)
next commitHEADmain
Diffstat (limited to 'Enemies/flying_enemy.gd')
-rw-r--r--Enemies/flying_enemy.gd30
1 files changed, 30 insertions, 0 deletions
diff --git a/Enemies/flying_enemy.gd b/Enemies/flying_enemy.gd
new file mode 100644
index 0000000..701affc
--- /dev/null
+++ b/Enemies/flying_enemy.gd
@@ -0,0 +1,30 @@
+extends Enemy
+
+
+@export var angular_speed = 3.0
+var alpha = 0
+
+enum MovementType {
+ UP_DOWN,
+ FORWARD,
+}
+@export var movement_type: MovementType = MovementType.UP_DOWN
+
+
+func _physics_process(delta: float) -> void:
+ $AnimatedSprite2D.play()
+
+ if movement_type == MovementType.UP_DOWN:
+ velocity.y = sin(alpha) * 32
+ elif movement_type == MovementType.FORWARD:
+ velocity.x = direction * speed
+ velocity.y = sin(alpha) * 16
+
+ alpha += delta * angular_speed
+
+ move_and_slide()
+ if get_last_slide_collision():
+ if $RayLeft.is_colliding():
+ direction = 1
+ elif $RayRight.is_colliding():
+ direction = -1