# code import pygame class Button: def __init__(self, up_image_path, over_image_path, position): self.up_image = pygame.image.load(up_image_path) self.over_image = pygame.image.load(over_image_path) self.image = self.up_image self.rect = self.image.get_rect(topleft=position) self.mask = pygame.mask.from_surface(self.image) def is_hovered(self, mouse_pos): return self.rect.collidepoint(mouse_pos) and self.mask.get_at((mouse_pos[0] - self.rect.x, mouse_pos[1] - self.rect.y)) def update(self, mouse_pos): if self.is_hovered(mouse_pos): self.image = self.over_image else: self.image = self.up_image pygame.init()