How to use a mask in PyGame

Its easy and doable in few minutes(faster than talking).
In the first phase you have your Rect surface, which will be updated each frame. So, you have to update .rect and .mask to reflect movements in your app. And also works with …collide_mask() function.
Like in this example:

class SpriteObject(pygame.sprite.Sprite):
    def __init__(self, x, y, w, h, color):
        pygame.sprite.Sprite.__init__(self)
        self.angle = random.randrange(360)
        self.original_image = pygame.Surface([w, h], pygame.SRCALPHA)
        self.original_image.fill(color)
        self.image = self.original_image
        self.rect = self.image.get_rect(center = (x, y))
        self.mask = pygame.mask.from_surface(self.image )
    def update(self):
        self.rotate()
    def rotate(self):
        self.angle += 0.3
        self.image = pygame.transform.rotate(self.original_image, self.angle)
        self.rect = self.image.get_rect(center = self.rect.center)
        self.mask = pygame.mask.from_surface(self.image )

Links
PyGame Mask guide
https://replit.com/@Rabbid76/PyGame-SpriteMask#main.py