Pygame Odd Blit Поведение - PullRequest
       6

Pygame Odd Blit Поведение

0 голосов
/ 08 ноября 2019

Итак, я делал простую программу 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 ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...