so basically assign the position of "inactive" bullet to be outside of the game screen with no velocity and when i want to use it i "activate" it by assigning the position and the velocity?
conceptually, yeah, that's kinda what you're doing. but for effeciecncy sake, you tend to push your inactive bullets to a `spare_list` and then `pop()` them off as needed.. if pop() fails, you ran out of spare bullets, and then you go to your factory/`new()` method to make more bullets.