ValueError при попытке реализации камеры в pygame с помощью subsurface()
pygame-ce 2.5.2 (SDL 2.30.8, Python 3.10.11)
Мне нужно реализовать камеру в pygame используя surface.subsurface().copy() Задумка такова: Камера берет кусок от данных поверхностей и отображает их всех на общей заданной, к примеру self.screen - само окно игры.
Вот код, до которого я додумался:
import pygame as pg
from typing import Tuple
class Camera:
def __init__(self, *surfaces: pg.Surface):
self.surfaces = surfaces
def draw(self, pos: Tuple[int, int], surface: pg.Surface):
size = surface.get_size()
for surf in self.surfaces:
sub_surf = surf.subsurface((pos, size)).copy()
surface.blit(sub_surf)
Но есть небольшая проблема. Игрок может быть везде, даже за рамками поверхности, а если указать как аргумент subsurface() что-то за гранью поверхности получится:
ValueError: subsurface rectangle outside surface area
Помогите с данной проблемой пожалуйста.