Cистема составных(одежды и эмоций) спрайтов

Я столкнулся с проблемой... я не знаю как реализовать составные спрайты... мне нужно отдельно цеплять на спрайт одежду и эмоции и при этом они должны двигаться вместе со спрайтом. Я конечно могу подгружать одежду и эмоции вместе с инициализацией класса...

Условно вот так:

me = ME(body_file, emotion_file, clothes_file)
melist.add(me)

Но мне нужно делать это отдельно от body спрайта, т.к. некоторые спрайты вовсе не имеют одежды и лица(отрисованы на основном body спрайта)

Вот код класса который отвечает за спрайт(если это криво написано не кидайте тапки в меня... я далеко не профи в этом)))

class ME(pg.sprite.Sprite):
def __init__(self, image_file, location):
    pg.sprite.Sprite.__init__(self)

    self.image = pg.image.load(image_file).convert_alpha()

    self.image_scaled = pg.transform.smoothscale(
        self.image, (WIDTH_SWIN/2.3, int(HEIGHT_SWIN)))
    self.rect = self.image_scaled.get_rect()

    self.image = self.image_scaled
    self.rect.center, self.rect.top = location, location[1]

    self.abss = WIDTH_SWIN / 100

class Clothes(pg.sprite.Sprite):
    def __init__(self, image_file, location):
        pg.sprite.Sprite.__init__(self)

        self.image = pg.image.load(image_file).convert_alpha()

        self.image_scaled = pg.transform.smoothscale(
            self.image, (WIDTH_SWIN/2.3, int(HEIGHT_SWIN)))
        self.rect = self.image_scaled.get_rect()

        self.image = self.image_scaled
        self.rect.center, self.rect.top = location, location[1]

        self.abss = WIDTH_SWIN / 100

def upd_me(self, data_):
    global moveupd
    nx = int(data_[0])
    if (nx - self.abss) > self.rect.center[0]:
        self.rect.x += self.abss
        # print('+', self.rect.x)
    else:
        if (nx + self.abss) < self.rect.center[0]:
            self.rect.x -= self.abss
            # print('-', self.rect.x)

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