pygame: как мне проверить если кнопка мыши отжата
У меня есть некий класс 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 + 1
except:
self.id = 1
self.image = pg.image.load(image).convert_alpha()
self.image.set_colorkey(clrs['white'])
self.rect = self.image.get_rect(topleft=(x, y))
buttons.append(self)
def check(self):
m = pg.mouse.get_pos()
if self.rect.collidepoint(m):
return self.id
else:
return None
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()
m1 = pg.mouse.get_pressed()[0]
print(i.type)
if m1 and i.type == pg.MOUSEBUTTONUP:
for i in buttons:
command = i.check()
if command:
break
print(command)
pg.time.delay(1000)```