, как говорится в названии, я хочу сократить это:
while run:
global mouse
mouse = pygame.mouse.get_pos()
first_button = button(pic, .1, .1, .1, .1)
second_button = button(pic, .25, .1, .1, .1)
third_button = button(pic, .75, .1, .1, .1)
first_button.drawButton()
second_button.drawButton()
third_button.drawButton()
до чего-то вроде этого:
while run:
global mouse
mouse = pygame.mouse.get_pos()
first_button = button(pic, .1, .1, .1, .1)
second_button = button(pic, .25, .1, .1, .1)
third_button = button(pic, .75, .1, .1, .1)
button.drawButton()
, но когда я это делаю, он говорит: «drawButton () отсутствует1 обязательный позиционный аргумент: 'self' "......... для справки, это мой класс кнопки:
class button:
global uiX, uiY, uiW, uiH
def __init__(self, image, x, y, w, h):
self.image = image
self.bx = int(uiX + (x * uiW))
self.by = int(uiY + (y * uiH))
self.bw = int(w * uiW)
self.bh = int(h * uiH)
def drawButton(self):
pic = pygame.transform.scale(self.image, (self.bw, self.bh))
win.blit(pic, (self.bx, self.by))
if ((self.bx < mouse[0] < (self.bx + self.bw)) and (self.by < mouse[1] < (self.by + self.bh))):
pygame.draw.rect(win, (0, 0, 0,), (self.bx, self.by, self.bw, self.bh))
def click(self):
if ((self.bx < mouse[0] < (self.bx + self.bw)) and (self.by < mouse[1] < (self.by + self.bh))):
print("Whatever the function will be")