Глава 20 · Разработка игр с Pygame

Рисуем первые игровые объекты

Первые игровые объекты — простые фигуры, рисуемые заново на каждом кадре.

Игровые объекты в Pygame рисуют прямо на экране каждый кадр — простыми фигурами (кругами, прямоугольниками), как мы делали в Turtle, или готовыми изображениями. Начнём с фигур — они не требуют внешних файлов и отлично подходят для первых игр. Полноценных персонажей с изображениями и анимацией мы соберём позже (разделы 20.19 и 20.23) — здесь же важен сам принцип: объект на экране — это просто фигура, которую рисуют заново на каждом кадре в нужном месте.

personazhi.py
CVET_IGROKA = (100, 200, 255)
CVET_VRAGA = (255, 80, 80)

x_igroka, y_igroka = 300, 350
x_vraga, y_vraga = 300, 50

# внутри игрового цикла, после screen.fill(...):
pygame.draw.rect(screen, CVET_IGROKA, (x_igroka, y_igroka, 40, 40))
pygame.draw.circle(screen, CVET_VRAGA, (x_vraga, y_vraga), 20)
Реальное окно: голубой квадрат игрока внизу экрана и красный круглый враг вверху на чёрном фоне
Реальное окно: те же две фигуры, что и в коде — прямоугольник и круг, каждый со своим цветом.

pygame.draw.rect() принимает кортеж (x, y, ширина, высота)(x, y) это левый верхний угол, как у Canvas в главе 18, а не центр, как у circle().

Rect — прямоугольник как объект
Для более сложных игр Pygame предлагает класс pygame.Rect — он хранит позицию и размер вместе и умеет проверять пересечения (.colliderect()) — то, что понадобится для космического шутера в главе 21.
Реальное окно: три цветных круга в ряд — красный, зелёный, синий — на чёрном фоне
Реальное окно: три врага разных цветов в ряд, нарисованные одним циклом for.
Практика: рисуем первые игровые объекты
Pygame открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →