I'm trying to make a sprite have two separate rects/hitbox. Is there any way I can achieve this?
without using two separate sprites?
Here's my current code and the spritesheet:
I'm using
class Tree(pygame.sprite.Sprite):
def __init__(self, pos):
super(Tree, self).__init__()
self.image = pygame.Surface((48 * 3, 48 * 4), pygame.SRCALPHA)
self.image_path = "objects.png"
self.sprite_sheet = pygame.image.load(self.image_path).convert_alpha()
self.tree_top = pygame.Surface((16 * 3, 16 * 3), pygame.SRCALPHA)
self.tree_top.blit(self.sprite_sheet, (0, 0), (0, 80, 16 * 3, 16 * 3))
self.tree_top = pygame.transform.scale(self.tree_top, (48 * 3, 48 * 3))
self.image.blit(self.tree_top, (0, 0))
self.tree_trunk = pygame.Surface((48 * 3, 48), pygame.SRCALPHA)
self.tree_trunk.blit(self.sprite_sheet, (0, 0), (0, 128, 16 * 3, 16))
self.tree_trunk = pygame.transform.scale(self.tree_trunk, (48 * 3 * 3, 48 * 3))
self.image.blit(self.tree_trunk, (0, 48 * 3))
self.rect = self.image.get_rect()
self.rect.topleft = pos
self.hitbox = self.rect.copy()
Spritesheet: