Как сделать кнопку из изображения python, pygame?

Как сделать кнопку, которая представляет из себя изображение в pygame? Также нужно её анимировать, то есть, когда ты на неё нажимаешь - она вдавливается.


Ответы (1 шт):

Автор решения: Valeriy M. Raznomazov

Все очень просто. Вы рисуете кнопку непосредственно на изображении экрана. Запоминаете координаты того места, где находится кнопка. Если она прямоугольная, то координаты углов, если круглая, то центр окружности и радиус. Если овальная.... то с этим все послоднее. Дальше делаете вот что

 for self.i in pygame.event.get(): 
                       self.x1 = self.i.pos[0]
                       self.y1 = self.i.pos[1]

вы используете метод захвата координат клика мы и переедаете их переменным x1 и y1. А потом, делаете условие If и проверяете, попал ли пользователь на кнопку. Как-то так.

 if self.x > 206 and self.x < 428 and self.y > 388 and self.y < 461: # первая кнопка

                                window1 = YouAreRight()
                            else:
                                window1 = YouAreWrong()

Сосбственно говоря в этот момент нажатия кнопки (клика по выделенной области) должен происходить механизм подмена одного рисунка - кнопки на рисунок нажатой кнопки. Подмена должа осуществляться через использование метода blit. Как-то так

button=[pygame.image.load('button (1).png'),pygame.image.load('button (2).png')]
win.blit(button[0], (x, y))
win.blit(button[1], (x, y))
→ Ссылка