Files
GodotTest/scripts/EnemyGenerator.gd
2025-05-13 13:29:35 +02:00

41 lines
1.0 KiB
GDScript

extends Node2D
@onready var EnemyScene: PackedScene = preload("res://scenes/Projectile.tscn")
signal start
signal stop
var Enemy
func _ready():
self.setup_enemy()
self.emit_signal("stop")
func setup_enemy() -> void:
self.Enemy = EnemyScene.instantiate()
Enemy.setup(GLOBAL.SpriteType.MISSILE, GLOBAL.MISSILE_SPEED["max"])
func spawn_and_shoot_enemy() -> void:
var Duplicate = Enemy.duplicate(Node.DUPLICATE_USE_INSTANTIATION)
Duplicate.set_random_color()
Duplicate.update_collision_layer()
$Enemies.add_child(Duplicate)
$SpawnArea/SpawnLocation.set_h_offset(randi())
Duplicate.global_position = $SpawnArea/SpawnLocation.position
var direction: Vector2 = (Vector2(0, 1080) - Duplicate.global_position).normalized()
var angle: float = Vector2(1, 0).angle_to(direction)
Duplicate.rotation = angle
Duplicate.shoot_missile(direction)
# --- Signals ---
func _on_SpawnTimer_timeout():
self.spawn_and_shoot_enemy()
func _on_EnemyGenerator_start():
$SpawnTimer.start()
func _on_EnemyGenerator_stop():
$SpawnTimer.stop()