Files
TopDownShooter-Godot/EnemySpawner.gd
2023-09-20 16:45:48 +02:00

45 lines
927 B
GDScript

extends Node
var Enemy = preload("res://Enemy.tscn")
var wave = 0;
var enemyList = []
var spawnpoints = [[20, 80], [50, 120],[90, 170],[500, 50]]
func _ready():
nextWave()
pass # Replace with function body.
func _process(delta):
var i = 0
for enemy in enemyList:
if not enemy || enemy.get_meta("dead") == true:
enemyList.remove_at(i)
i = i + 1;
if len(enemyList) == 0:
nextWave()
func spawnEnemies(count):
var i = 0;
while i < count:
print("spawn enemy")
var enemyInstance = Enemy.instantiate()
enemyInstance.name = "Enemy" + str(randf())
enemyInstance.position = Vector2(spawnpoints.pick_random()[0] + i, spawnpoints.pick_random()[1] + i)
get_parent().call_deferred("add_child", enemyInstance)
enemyList.append(enemyInstance)
i = i+1;
func startWave():
print("start wave")
if wave == 0:
spawnEnemies(1)
else:
spawnEnemies(wave * 3)
func nextWave():
wave = wave+1;
startWave()