Im trying to make obstacles in my horizontal sidescroller come in waves. The obstacles come from marker2ds. Im trying to use loops and a timer to make a primitive wave system but instead spawning obstacles after a set amount of time each loop the obstacles(other than the first 2) arent coming out at all.
extends Node
@export var bat_scene: PackedScene
@export var spike_scene: PackedScene
@onready var wave_timer: Timer = $waves
@onready var bat1 = $bat_point1
@onready var bat2 = $bat_point2
@onready var bat3 = $bat_point3
@onready var bat4 = $bat_point4
@onready var bat5 = $bat_point5
@onready var bat6 = $bat_point6
@onready var spike1 = $spike_point1
var waves = 10
func _ready() -> void:
var start = 0
spawn(bat_scene)
spawn(spike_scene)
while start < waves:
start += 1
print(start)
wave_timer.start()
if wave_timer.time_left <= 0:
print("success")
spawn(bat_scene)
spawn(spike_scene)
func spawn(type):
print("just checking")
if type == bat_scene:
spawn_bats()
elif type == spike_scene:
spawn_spikes()
func spawn_bats():
var spawn1 = bat_scene.instantiate()
add_child(spawn1)
spawn1.global_position = bat1.global_position
print("hello bat")
var spawn2 = bat_scene.instantiate()
add_child(spawn2)
spawn2.global_position = bat2.global_position
print("hello bat2")
var spawn3 = bat_scene.instantiate()
add_child(spawn3)
spawn3.global_position = bat3.global_position
print("hello bat3")
var spawn4 = bat_scene.instantiate()
add_child(spawn4)
spawn4.global_position = bat4.global_position
print("hello bat4")
var spawn5 = bat_scene.instantiate()
add_child(spawn5)
spawn5.global_position = bat5.global_position
print("hello bat5")
var spawn6 = bat_scene.instantiate()
add_child(spawn6)
spawn6.global_position = bat6.global_position
print("hello bat6")
func spawn_spikes():
var spawn1 = spike_scene.instantiate()
add_child(spawn1)
spawn1.global_position = spike1.global_position
print("hello bat6")
This is whats printed:
just checking, hello bat, hello bat2, hello bat3, hello bat4, hello bat5, hello bat6, just checking, hello, bat6, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10