Улик Додиков
Оракул
(90533)
1 неделю назад
Код, в целом, выглядит правильно, но есть несколько моментов, которые стоит проверить:
1. Убедитесь, что изображения "0.jpg", "1.jpg" и "2.jpg" находятся в той же директории, что и ваш скрипт.
2. Отступы в функциях `button_function1` и `button_function2` должны быть сделаны правильно, чтобы они находились внутри функций.
3. Вызовы функций `zero_Button.draw()` и `one_Button.draw()` должны находиться внутри основного цикла `while running:`, чтобы кнопки перерисовывались на каждом кадре.
Проверьте эти моменты. Если проблема не в этом, уточните, какая именно ошибка возникает.
Александр wer
Ученик
(150)
1 неделю назад
У вас есть некоторые проблемы в вашем коде. Вот некоторые из них:
1. Вы не правильно определили метод `__init__` в классе `Button`. В Python необходимо использовать два символа подчеркивания до и после "init", чтобы создать конструктор. Исправьте это, чтобы ваш класс `Button` выглядел так:
```python
class Button():
def __init__(self, x, y, image):
self.image = image
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
def draw(self):
screen.blit(self.image, (self.rect.x, self.rect.y))
```
2. У вас отсутствует вызов `pygame.display.update()` или `pygame.display.flip()` после отрисовки кнопок. Добавьте этот вызов после `zero_Button.draw()` и `one_Button.draw()`.
3. Проверьте, что изображения "0.jpg" и "1.jpg" находятся в той же директории, что и ваш скрипт. Убедитесь, что пути к файлам указаны правильно.
После внесения этих изменений ваш код должен работать правильно. Если у вас остались вопросы или у вас возникли другие проблемы, пожалуйста, дайте мне знать.
def button_function1():
print("1")
def button_function2():
print("2")
pygame.init()
window_size = (591, 950)
pygame.display.set_caption("калькулятор")
screen = pygame.display.set_mode(window_size)
background_color = (255, 255, 255)
screen.fill(background_color)
pygame.display.flip()
#ридание изображения кнопке
zero_img = pygame.image.load("0.jpg").convert_alpha()
one_img = pygame.image.load("1.jpg").convert_alpha()
two_img = pygame.image.load("2.jpg").convert_alpha()
class Button():
def __init__(self, x, y, image):
self.image = image
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
def draw(self):
screen.blit(self.image, (self.rect.x, self.rect.y))
#создание кнопки
zero_Button = Button(100, 100, zero_img)
one_Button = Button(100, 200, one_img)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if zero_Button.rect.collidepoint(event.pos):
button_function1()
if one_Button.rect.collidepoint(event.pos):
button_function2()
if event.type == pygame.QUIT:
running = False
zero_Button.draw()
one_Button.draw()