Menu
CoddyTech

Круги, линии, многоугольники

Часть раздела Игровой цикл путешествия по Pygame на Coddy. Урок 9 из 32.

До сих пор ты рисовал прямоугольники. В pygame.draw есть и другие фигуры, и все они начинаются одинаково: поверхность для рисования, затем цвет.

pygame.draw.circle(screen, (255, 196, 0), (100, 80), 30)
pygame.draw.line(screen, (240, 240, 240), (0, 200), (480, 200), 3)
pygame.draw.polygon(screen, (60, 200, 120), [(240, 40), (280, 120), (200, 120)])

Для окружности указываются её центр и радиус. В отличие от прямоугольника, её положение задаётся серединой, а не левым верхним углом. Радиус 30 означает, что диаметр окружности равен 60 пикселям.

Для линии указываются две конечные точки и, в последнюю очередь, её ширина в пикселях. Если ширину не указать, линия будет толщиной 1 пиксель.

Для многоугольника указывается список угловых точек, а фигура между ними заполняется цветом; последняя точка соединяется с первой. Три точки образуют треугольник, четыре — ромб.

challenge icon

Задание

Легко

Нарисуй парусник в море после заливки:

  1. Солнце: жёлтый круг цвета (255, 196, 0) с центром в точке (380, 80) и радиусом 40.
  2. Море: синяя линия цвета (80, 160, 255) от точки (0, 280) до точки (480, 280), толщиной 4 пикселя.
  3. Парус: красный многоугольник цвета (235, 80, 80) с вершинами (240, 120), (240, 250) и (160, 250).

Попробуйте сами

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Sailboat")
clock = pygame.time.Clock()

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

    screen.fill((30, 30, 46))
    # нарисуйте здесь солнце, море и парус
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

Все уроки раздела Игровой цикл

Потренируйтесь самостоятельно: Песочница Pygame