Итак, я делал простую программу Pygame, в которой есть несколько кнопок и фон, и при настройке системы, чтобы кнопки становились немного темнее при наведении курсора и намного темнее при нажатии, я столкнулся с этой проблемой,где каждый раз, когда я нажимаю, кнопка темнеет, как и должно быть, но затем при отпускании кнопка возвращается к полной яркости всего на один-два кадра, а затем возвращается к уровню при наведении.
class button:
def __init__(self, action, actionParam, buttonPic, x, y, w, h):
self.action = action
self.actionParam = actionParam
self.bx = int(uiX + (x * uiW))
self.by = int(uiY + (y * uiH))
self.bw = int(w * uiW)
self.bh = int(h * uiH)
self.buttonPic = pygame.transform.scale(buttonPic, (self.bw, self.bh))
self.over = pygame.Surface((self.bw, self.bh))
self.over.fill((0,0,0))
def draw_button(self):
if window.blit(self.buttonPic, (self.bx, self.by)).collidepoint(mouse):
self.over.set_alpha(50)
if click[0]:
self.over.set_alpha(100)
else: self.over.set_alpha(0)
window.blit(self.buttonPic, (self.bx, self.by))
window.blit(self.over, (self.bx, self.by))
def click_button(self):
if window.blit(self.buttonPic, (self.bx, self.by)).collidepoint(mouse):
self.action(self.actionParam)
Это также не реагирует на потемнение, когда я наводю курсор на кнопки, когда на что-то вроде моего интернет-браузера, когда я нахожу курсор на кнопке, он реагирует.
note, 'mouse', которую я использую влиния столкновения, определенная как pygame.mouse.get_pos () каждый раз, когда основной цикл запускается до того, как кнопки прорисованы и нажата кнопка, называется pygame.mouse.get_pressed ()