import pygame from display import Scaling class FieldSprite(pygame.sprite.Sprite): def __init__(self, rect: pygame.Rect): super().__init__() self.rect = rect self.image = pygame.Surface(self.rect.size) self.image.fill("green") class Field(): def __init__(self, scaling: Scaling = None): self.scaling = scaling if scaling else Scaling(50,0,0) self.sprites = pygame.sprite.Group() self.updated = True self.areas = [(0,0,40_000,28_000)] def area_to_rect(self, area): x, y, w, h = area return pygame.Rect( x * self.scaling.scale + self.scaling.left, y * self.scaling.scale + self.scaling.top, w * self.scaling.scale, h * self.scaling.scale) def __update_sprites(self): self.sprites.empty() for area in self.areas: self.sprites.add(FieldSprite(self.area_to_rect(area))) def add_score(self, score_to_add): self.updated = True self.score += score_to_add def get_sprites(self): if self.updated: self.__update_sprites() return self.sprites def __del__(self): pass