pygame: Как проверить если мышь находится в одном из rect
У меня есть некий класс button, имеющий функцию check, которая выводит id кнопки если мышь находится внутри его rect но у меня так и не получилось это реализовать( так что люди умные, помогите чем можете пж:
import pygame as pg
W = 1920
H = 1080
pg.init()
pg.display.set_mode(flags=pg.FULLSCREEN | pg.OPENGL | pg.DOUBLEBUF)
sc = pg.display.set_mode((W, H))
clrs = {'white': (255, 255, 255)}
class Button(pg.sprite.Sprite):
def __init__(self, image, x, y):
pg.sprite.Sprite.__init__(self)
try:
self.id = buttons[-1].id
except:
self.id = 1
self.image = pg.image.load(image).convert_alpha()
self.image.set_colorkey((255, 255, 255))
self.rect = self.image.get_rect(topleft=(x, y))
buttons.append(self)
def check(self):
m = pg.mouse.get_pos()
if (self.rect.right > m[0] > self.rect.left) and (self.rect.bottom > m[0] > self.rect.top):
return self.id
print('a')
print('b')
buttons = []
sc_menu = pg.Surface((W, H))
sc_menu.fill(clrs['white'])
menu_bg = pg.image.load('main_menu.png')
sc_menu.blit(menu_bg, (0, 0))
Button('game-button.png', 25, 100)
Button('profile-button.png', 25, 200)
for i in buttons:
sc_menu.blit(i.image, i.rect)
sc.blit(sc_menu, (0, 0))
pg.display.update()
while 1:
for i in pg.event.get():
if i.type == pg.QUIT:
pg.quit()
sys.exit()
if pg.mouse.get_pressed()[0]:
for i in buttons:
print(i.check())
pg.time.delay(20)```