Thanks for the advice. In your example, what does the update() method do? I see a lot of examples with it and I never understood what it was for.
In this specific case, I would guess it Bullet.update updates the bullet's position (e.g. based on direction and velocity), and checks if it hits something (in which case, it modifies the bullet's dead variable).