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)