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

Помогите с данной проблемой пожалуйста.


Ответы (0 шт):