Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Я учусь в программирование на python, но мой код не работает, помогите!!!

Володя Борисов Ученик (98), открыт 1 неделю назад
import pygame

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()
3 ответа
Улик Додиков Оракул (90533) 1 неделю назад
Код, в целом, выглядит правильно, но есть несколько моментов, которые стоит проверить:

1. Убедитесь, что изображения "0.jpg", "1.jpg" и "2.jpg" находятся в той же директории, что и ваш скрипт.
2. Отступы в функциях `button_function1` и `button_function2` должны быть сделаны правильно, чтобы они находились внутри функций.
3. Вызовы функций `zero_Button.draw()` и `one_Button.draw()` должны находиться внутри основного цикла `while running:`, чтобы кнопки перерисовывались на каждом кадре.

Проверьте эти моменты. Если проблема не в этом, уточните, какая именно ошибка возникает.
Володя БорисовУченик (98) 1 неделю назад
всё выше перечисленное в порядке
Улик Додиков Оракул (90533) Володя Борисов, ошибку уточнять кто будет? Или я экстрасенс?
Александр 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" находятся в той же директории, что и ваш скрипт. Убедитесь, что пути к файлам указаны правильно.

После внесения этих изменений ваш код должен работать правильно. Если у вас остались вопросы или у вас возникли другие проблемы, пожалуйста, дайте мне знать.
Володя БорисовУченик (98) 1 неделю назад
спасибо, очень помог
Александр wer Ученик (150) Володя Борисов, всегда пожалуйста
Похожие вопросы