public void DrawWorld(SpriteBatch spriteBatch) { var camPos = Camera.GetPosition() + Camera.GetOrigin(); var viewDistance = Graphics.PresentationParameters.BackBufferWidth / (Camera.Zoom * Camera.GetZoomFromZ(Camera.Z, 0f)); for (var i = 0; i <= Asteroids.LastActiveIndex; i++) { var asteroid = Asteroids[i]; var distance = Vector2.Distance(asteroid.Position, camPos); // quick hack to do view culling if (distance < viewDistance) { asteroid.Draw(spriteBatch); } } PlayerEntity.Draw(spriteBatch); for (var i = 0; i < Ships.Count; i++) { var ship = Ships[i]; var distance = Vector2.Distance(ship.Position, camPos); // quick hack to do view culling if (distance < viewDistance) { ship.Draw(spriteBatch); } } }