Pygame: Добавление объектов (квадраты, текст) на экран

Урок посвящен созданию и размещению объектов на экране с помощью Pygame. Рассмотрим создание простых фигур (квадраты, круги), добавление текста и изображений.

Создание и отрисовка фигур

Удалим ненужные комментарии и код, отвечающий за изменение цвета экрана при нажатии клавиши. Создадим квадрат, используя класс pygame.Surface. Этот класс представляет поверхность для вывода графических элементов. Экран в Pygame также является Surface.

square = pygame.Surface((50, 170))  # Создаем поверхность 50x170 пикселей
square.fill((0, 0, 255)) # Заливаем синим цветом (RGB)

В цикле отрисовки добавим вывод квадрата на экран:

screen.blit(square, (0, 0)) # Отрисовка в координатах (0, 0)

Координаты (0, 0) соответствуют левому верхнему углу. Изменим координаты на (100, 0), чтобы сдвинуть квадрат на 100 пикселей вправо:

screen.blit(square, (100, 0))

Система координат начинается с левого верхнего угла.

Альтернативный способ: метод pygame.draw

Компактный способ отрисовки фигур — метод pygame.draw. Например, для круга:

pygame.draw.circle(screen, (255, 0, 0), (250, 150), 30) # Красный круг, центр (250, 150), радиус 30

screen – поверхность экрана, (255, 0, 0) – красный цвет, (250, 150) – координаты центра, 30 – радиус.

Круг можно нарисовать внутри квадрата, указав square как поверхность отрисовки:

pygame.draw.circle(square, (0, 0, 0), (10, 7), 5) # Маленький черный круг внутри квадрата

Очередность отрисовки

Объекты отрисовываются последовательно. Если квадрат и круг находятся в одних и тех же координатах, квадрат перекроет круг, если рисуется позже. Если круг рисуется внутри квадрата, он будет виден, поскольку рисуется на его поверхности.

Текст

Для создания текста, загрузим шрифт (например, с fonts.google.com). После загрузки, разместите его в папке проекта.

myfont = pygame.font.Font('fonts/ваш_шрифт.ttf', 40) # Загрузка шрифта
textsurface = myfont.render('it-Proger', False, (0, 0, 0)) # Рендеринг текста
screen.blit(textsurface, (300, 100)) # Отображение текста

‘fonts/ваш_шрифт.ttf’ – путь к шрифту, 40 – размер, ‘it-Proger’ – текст, (0, 0, 0) – черный цвет. False отключает сглаживание. Установите True для сглаживания.

Изображения

Для отображения изображений используйте pygame.image.load():

player = pygame.image.load('images/icon.png')
screen.blit(player, (100, 50)) # Отображение изображения

‘images/icon.png’ – путь к изображению. Учитывайте размеры изображения и экрана.

В этом уроке мы научились создавать и отображать объекты в Pygame: простые фигуры, текст и изображения. Принцип отрисовки одинаков: создание объекта и использование screen.blit() для вывода на экран. Помните об очередности отрисовки – последующие объекты перекрывают предыдущие.

Что будем искать? Например,программа