But also Using a distance I noticed there is no bullet misses now also, so every bullet is used.
Some times collisions can fail to register if the sprite is moving faster then the physics is updating, I stumbled across this problem years ago in GameMaker, I think I ditched the bullet collision and cast a 2d ray instead ..
From now on I'm going to have to remember if I resize my arrays to get the value first.
If you resize an array in a loop you always, without exception, run the loop in reverse, from the top down, from end to start, iE: backwards!
For index=myArray.length to 0 Step -1
// do some stuff
myArray.remove(index) << safe to remove from the top
Next