extends Node3D @export var spawn_area_size := Vector2(20, 20) # Breite x Tiefe @export var spawn_height := 15.0 @export var cube_count := 1200 @export var spawn_duration := 3.0 # Sekunden für alle Würfel @export var cube_scene: PackedScene var spawned_cubes: Array[RigidBody3D] = [] func _ready(): # Warte kurz, dann starte den Würfelregen await get_tree().create_timer(1.0).timeout spawn_cubes() func spawn_cubes(): var spawn_interval = spawn_duration / cube_count for i in range(cube_count): spawn_single_cube() await get_tree().create_timer(spawn_interval).timeout func spawn_single_cube(): if not cube_scene: push_error("Cube Scene nicht zugewiesen!") return var cube = cube_scene.instantiate() as RigidBody3D add_child(cube) # Zufällige Position über dem Spielfeld var random_x = randf_range(-spawn_area_size.x / 2, spawn_area_size.x / 2) var random_z = randf_range(-spawn_area_size.y / 2, spawn_area_size.y / 2) cube.global_position = global_position + Vector3(random_x, spawn_height, random_z) # Zufällige Rotation cube.rotation = Vector3(randf() * PI, randf() * PI, randf() * PI) spawned_cubes.append(cube)