Godot Version
4.5.1
Question
Thanks for reading, I am starting at Godot and I am having issues with object spawning, I have this frogger like game with cars (that I am being following from Clear Code tutorials on YT) and it seems to be that when my player moves and the cars are out of the camera zone they dissapear

The cars should dissapear when they get at the border of the scene, but when moving my player and if they are out of the camera zone they are erased (with queue_free() my guess)
any advice on what am I doing wrong? these are the codes
car (or auto as I called them):
extends Area2D
var dir = Vector2.LEFT
var vel = 100
var colores = [
preload("res://graphics/cars/green.png"),
preload("res://graphics/cars/red.png"),
preload("res://graphics/cars/yellow.png"),
]
func _ready() -> void:
if position.x < 0:
dir.x = 1
$AutoSprite.flip_h = true
$AutoSprite.texture = colores.pick_random()
func _process(delta: float) -> void:
position += dir*vel*delta
func _on_visible_on_screen_notifier_2d_screen_exited() -> void:
queue_free()
game:
extends Node2D
var auto_scene: PackedScene = preload("res://objetos/auto.tscn")
func _on_llegada_body_entered(body: Node2D) -> void:
print(body)
print("Ha llegado a la meta")
func _on_auto_timer_timeout() -> void:
var auto = auto_scene.instantiate() as Area2D
var marcador = $PosicionesInicioAuto.get_children().pick_random() as Marker2D
auto.position = marcador.position
$objetos.add_child(auto)
auto.connect("body_entered",iniciar)
func iniciar(body):
print(body)
print("inicio")
player:
extends CharacterBody2D
var dir: Vector2 = Vector2(1,1)
var vel: int = 200
func _physics_process(_delta: float) -> void:
dir = Input.get_vector("izq","der","arr","aba")
velocity = dir * vel
move_and_slide()
anim()
if Input.is_action_just_pressed("sal"):
print("Espacio")
func anim():
if dir:
$AnimatedSprite2D.flip_h = dir.x > 0
if dir.x != 0:
$AnimatedSprite2D.animation = 'horizontal'
else:
$AnimatedSprite2D.animation = 'arriba' if dir.y < 0 else 'abajo'
else:
$AnimatedSprite2D.frame = 0