Это следующая часть основ Python библиотеки PyGame, и в этой части мы рассмотрим как создавать фигуры в PyGame.
Также конечно перед этой статьёй рекомендую посмотреть предыдущую часть «Основы Python библиотеки PyGame, Часть 1», в ней вы создадите первое оконное PyGame приложение.
Создание фигур в PyGame:
В целом создавать фигуры в Pygame очень просто, для этого есть несколько методов.
Cоздание линий в PyGame:
Для начала разберём как создавать линии, это пожалуй самое просто что можно сделать в PyGame, вот код:
1 2 3 4 5 6 7 | while True: pygame.draw.line(screen, (255, 255, 255), [10, 30], [290, 30], 3) for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() pygame.display.update() |
Как видите мы здесь немного дополнили программу из прошлой части, первое мы добавили рисование линии, потом мы будем там же писать последующие фигуры, о сомой линии тоже расскажем чуть позже.
Второе, это pygame.display.update()
, оно должно быть обязательно, так как этот метод обновляет рендер окна, если это не добавить, то линий или фигур не будет, так как после рисования, рендер должен обновиться.
Рисование линии происходит благодаря методу pygame.draw.line()
, первым параметром указывается экран в котором мы будем отображать линию, второй цвет, и как возможно вы заметили, пошиться он в формате RGB, в виде картежа.
Третий и четвёртый параметр, это координаты первой и последней точки, который задаются виде массива, первый элемент которое отвечает за ось X, второй за ось Y.
Последние, определяет ширину линии в пикселях, и как видите у нас на три.
Вот что у нас в итоге получилось:
Как видите у нас в окне теперь есть линия.
Цвета:
Ещё стоит упомянуть как работать со цветом, как говорилась выше, цвет используется в формате RGB, то есть Красный, Злёный и Синий.
Все значения вводиться в картеж тремя параметрами, красный, зелёный и синий соответственно. Для удобства мы создадим несколько переменных, для удобства.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Белый WHITE = (255, 255, 255) # Чёрный BLACK = (0, 0, 0) # Серый GRAY = (125, 125, 125) # Голубой LIGHT_BLUE = (64, 128, 255) # Зелёный GREEN = (0, 200, 64) # Жёлтый YELLOW = (225, 225, 0) # Розовый PINK = (230, 50, 230) |
Теперь вы можете просто использовать эти переменные, это так, примечание.
Создание нескольких линий PyGame:
Также есть отдельный метод для создания нескольких линий, это полезно, если вам нужно создать какую-нибудь фигуры, или несколько линий последовательно.
Вот не большой пример:
1 2 | pygame.draw.lines(screen, YELLOW, True, [[10, 10], [140, 70], [280, 20]], 2) pygame.draw.lines(screen, PINK, False, [[10, 50], [140, 120], [280, 50], [230, 120]], 5) |
Как видите для этого используется метод pygame.draw.lines()
, первым параметром всё также вставляем параметр вывода экрана, второй цвет, третьем обозначаем надо ли соединять конечные линии.
Дальше идёт массив координат точек, это конечные точки линий, где они должны соединяться/заканчиваться, они тоже храниться в массиве, их может быть хоть сколько. Последние это размер линии.
Вот что у нас в итоге получилось:
То есть в первом варианте мы вывели треугольник, второй, это просто последовательные линии.
Создание четырёх угольников PyGame:
Теперь перейдём к созданию четырёх угольников, создавать не сложно, для этого вам нужен метод pygame.draw.rect()
, вот пример его использования:
1 | pygame.draw.rect(screen, LIGHT_BLUE, (20, 20, 150, 75)) |
Первые два параметра они такие же как и в прошлые разы, вот с третьем все интереснее, это картеж, в котором первые два параметра отвечают за координаты левого верхнего угла, остальные два за ширину и высоту.
Ещё есть четвёртый параметр, который отвечает за ширину обводки, если его нет, то тогда фигура будет залита.
Вот что получилось:
Как видите мы сделали прямоугольник.
Создание круга PyGame:
Суть создания похожа как и в случае с квадратом, только теперь используем pygame.draw.circle()
, вот пример:
1 | pygame.draw.circle(screen, YELLOW, (60, 100), 50, 30) |
Здесь третий параметр указывает расположение центр окружности, а четвёртый его радиус, всё остальное также, как в случае с прямо угольником.
Вот результат:
Ещё есть эллипсы, за это отвечает метод pygame.draw.ellipse()
, у неё параметры такие же, как у метода для создания прямоугольника, вот пример:
1 | pygame.draw.ellipse(screen, GRAY, (10, 50, 280, 100)) |
Вот результат:
Как видите у нас получается эллипс.
Вывод:
В этой статье вы узнали как создавать фигуры в PyGame, как видите в целом тут не чего сложного нет, надо просто запомнить несколько методов.