click[0] == 1
- Истина, пока кнопка удерживается нажатой. Вы должны реализовать событие MOUSEBUTTONDOWN
.
Получить список событий в основном приложении l oop:
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
# [...]
Добавить аргумент events
к box_button
и передать список событий в функцию:
box_button(events, .....)
Проверьте наличие события MOUSEBUTTONDOWN
в box_button
и используйте pygame.Rect
соответственно collidepoint
для испытания на столкновение:
def box_button(events, x, y, colour, action=None):
toggle = False
for event in events:
if event.type == pygame.MOUSEBUTTONDOWN:
button_rect = pygame.Rect(x + 10, y+10, 30, 30)
if event.button == 1 and button_rect.collidepoint(event.pos):
toggle = not toggle
colour = green if toggle else red
pygame.draw.rect(window, white, (x, y, 50, 50))
pygame.draw.rect(window, colour, (x + 10, y+10, 30, 30))
return colour