Урок посвящен созданию и размещению объектов на экране с помощью 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() для вывода на экран. Помните об очередности отрисовки – последующие объекты перекрывают предыдущие.