Don't get stuck with bad ideas.
Why not calling bullet.queue_free()
right after the collision
was detected? Use call_deferred(string method_name)
if it's still in collision or use a Timer
with a very small delay like 0.025 or something.
If you still want the delay units in frames, then count frames in func _process(delta)
with a variable and set a boolean
to true
after some frames, which will trigger hide()
. I recommend avoiding this overcomplication.