Как сделать кнопки в pygame?

Пользователь

от roxanne.hauck , в категории: Python , 2 года назад

Как сделать кнопки в pygame?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 2 года назад

@roxanne.hauck 

В Pygame вы можете создать кнопку, используя модуль pygame.draw.rect() для создания прямоугольника и модуль pygame.font.Font() для добавления текста на кнопку. Зате

Пользователь

от ludie , год назад

@roxanne.hauck 

м вы можете обработать действия с кнопками, используя функции pygame.mouse.get_pos() для получения позиции мыши и pygame.mouse.get_pressed() для получения состояния кнопок мыши.


Вот пример кода, который показывает, как создать простую кнопку в Pygame:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import pygame

pygame.init()
win_width = 800
win_height = 600
win = pygame.display.set_mode((win_width, win_height))

# Определяем цвета
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)

# Определяем размеры и позицию кнопки
button_width = 200
button_height = 50
button_x = (win_width - button_width) // 2
button_y = (win_height - button_height) // 2

# Создаем шрифт для текста на кнопке
font = pygame.font.Font(None, 30)

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    # Получаем позицию мыши и состояние кнопок мыши
    mouse_pos = pygame.mouse.get_pos()
    mouse_click = pygame.mouse.get_pressed()

    # Очищаем экран
    win.fill(WHITE)

    # Рисуем кнопку
    pygame.draw.rect(win, BLACK, (button_x, button_y, button_width, button_height))
    
    # Проверяем, наведена ли мышь на кнопку и нажата ли кнопка мыши
    if button_x < mouse_pos[0] < button_x + button_width and button_y < mouse_pos[1] < button_y + button_height:
        if mouse_click[0] == 1:
            # Действие при нажатии на кнопку
            print('Кнопка нажата!')

        pygame.draw.rect(win, GREEN, (button_x, button_y, button_width, button_height))
    
    # Рисуем текст на кнопке
    text = font.render('Нажми меня', True, WHITE)
    text_rect = text.get_rect()
    text_rect.center = (button_x + button_width//2, button_y + button_height//2)
    win.blit(text, text_rect)

    pygame.display.update()


В этом примере создается окно размером 800x600 пикселей. Функция pygame.draw.rect() используется для создания прямоугольника кнопки, а pygame.font.Font() - для создания шрифта текста на кнопке. Позиция кнопки обновляется каждую итерацию цикла, а действие при нажатии на кнопку осуществляется в блоке кода, где проверяется состояние кнопки мыши.


Вы можете изменить размер окна, цвета и текст кнопки, а также добавить свою логику обработки действий при нажатии на кнопку, в соответствии с вашими потребностями.