import pygame from settings import * class Camera: def __init__(self, target): self.target = target self.offset = pygame.Vector2(0, 0) def update(self): # Smooth camera movement target_x = self.target.rect.centerx - SCREEN_WIDTH // 2 target_y = self.target.rect.centery - SCREEN_HEIGHT // 2 self.offset.x += (target_x - self.offset.x) * CAMERA_SMOOTHING self.offset.y += (target_y - self.offset.y) * CAMERA_SMOOTHING def apply(self, rect): return rect.move(-self.offset.x, -self.offset.y) def screen_to_world(self, pos): return (pos[0] + self.offset.x, pos[1] + self.offset.y)