Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор. Прочетете още.

PyGame е мощна и популярна библиотека за разработка на игри за Python. Той предоставя набор от инструменти и функции, които улесняват създаването на игри и други интерактивни приложения. Една полезна функция на PyGame е способността му да рисува обекти и форми.

Модулът pygame.draw

В PyGame рисуването на обекти и форми е лесен процес. Можете да използвате pygame.draw модул за рисуване на фигури като правоъгълници, кръгове, линии и др.

Преди да започнете, уверете се, че имате pip, инсталиран на вашето устройство, след това използвайте тази команда, за да инсталирате PyGame модул:

pip инсталирайте pygame

Рисуване на основни фигури

The pygame.draw модул предоставя няколко функции, които ви позволяват да рисувате основни форми. Всяка функция приема набор от параметри, за да дефинира формата и нейната позиция.

  • прав(): Можете да начертаете правоъгълник с помощта на тази функция. Това е една от най-често използваните форми в игрите. Можете да създавате платформи, стени и други обекти с правоъгълници. Функцията приема четири параметъра: повърхност (повърхността, върху която да нарисувате правоъгълника), цвят, rect (обект Rect) и ширина (дебелина на линията).
    instagram viewer
    pygame.draw.rect (повърхност, цвят, правоъгълник, ширина)
  • кръг(): Начертайте кръг. Отнема четири параметъра: повърхност, цвят, позиция (център на кръга) и радиус.
    pygame.draw.circle (повърхност, цвят, позиция, радиус)
  • многоъгълник(): Начертайте многоъгълник. Отнема четири параметъра: повърхност, цвят, точки (списък от точки, които определят формата на многоъгълника) и ширина.
    pygame.draw.polygon (повърхност, цвят, точки, ширина) 
  • линия(): Чертая линия. Отнема четири параметъра: повърхност, цвят, start_pos и end_pos.
    pygame.draw.line (повърхност, цвят, start_pos, end_pos) 

Можете да намерите пълния списък с функции и техните параметри на официалния Документация на PyGame за модула за рисуване.

Рисуване на сложни форми

Освен основни форми, PyGame също ви позволява да рисувате сложни форми като дъги, елипси и аалини.

  • дъга(): Тази функция рисува дъга върху повърхност. Дъгата е част от окръжност. Отнема шест параметъра: повърхност, цвят, правоъгълник, начален_ъгъл, краен_ъгъл и ширина. Посочете ъглите в градуси, като 0 градуса сочат надясно и се увеличават по посока на часовниковата стрелка. Параметърът за ширина определя дебелината на дъгата.
    pygame.draw.arc (повърхност, цвят, прав, начален_ъгъл, краен_ъгъл, ширина)
  • елипса(): Начертайте елипса върху повърхност. Елипса е разтеглен кръг. Отнема четири параметъра: повърхност, цвят, правоъгълник и ширина.
    pygame.draw.ellipse (повърхност, цвят, правоъгълник, ширина)
  • aaline(): Използвайте, за да начертаете една линия с изглаждане върху повърхност. Anti-aliasing е техника, използвана за изглаждане на ръбовете на фигура, така че да изглежда по-естествено. Необходими са четири параметъра, които отразяват линия() функция: повърхност, цвят, start_pos и end_pos.
    pygame.draw.aaline (повърхност, цвят, start_pos, end_pos) 

Създаване на вложени форми в PyGame

Друга интересна функция на PyGame е възможността да рисувате форми вътре в друга форма. Можете да направите това, като използвате комбинация от основните функции за рисуване на фигури в PyGame.

За да начертаете фигура вътре в друга фигура, можете първо да начертаете вътрешната форма и след това да начертаете външната фигура върху нея. Вътрешната форма може да бъде всяка основна форма, като например правоъгълник или кръг.

Например, за да начертаете правоъгълник вътре в кръг, можете да използвате pygame.draw.circle() функция за начертаване на кръга и след това използвайте pygame.draw.rect() функция за начертаване на правоъгълника върху него.

Можете да намерите следните примерни кодове в това репо на GitHub.

Ето примерен кодов фрагмент, който демонстрира как да начертаете правоъгълник в кръг:

импортиране pygame

# Инициализирайте pygame
pygame.init()

# Създаване на прозорец
прозорец = pygame.display.set_mode((800, 600))

# Създайте кръг
circle_rect = pygame.draw.circle (прозорец, (255, 255, 255), (400, 300), 100)

# Създайте повърхност за правоъгълника
rectangle_surface = pygame. Повърхност((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Начертайте правоъгълника върху повърхността
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Начертайте повърхността върху кръга
window.blit (rectangle_surface, (375, 275))

# Основен цикъл
докатоВярно:
# Излизане от играта
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
pygame.quit()
изход()

# Актуализирайте дисплея
pygame.display.update()

Това създава ефекта на правоъгълник в кръг. Можете да използвате тази техника, за да създадете по-сложни форми и елементи на играта, като комбинирате множество форми.

Рисуване на изображения

PyGame също ви позволява да рисувате изображения. Можете да използвате pygame.image.load() функция за зареждане на изображение от файл и pygame.image.blit() функция за начертайте изображението на екрана.

Синтаксисът за pygame.image.load() изглежда така:

pygame.image.load (име на файл) 

А ето и синтаксиса за pygame.image.blit():

pygame.image.blit (изображение, прав) 

В допълнение към зареждането и рисуването на изображения, PyGame предоставя и няколко други функции, свързани с изображения. Тези функции ви позволяват да манипулирате изображения по различни начини, като например мащабиране, завъртане, обръщане и изрязване.

Добавяне на разширени функции

PyGame също предоставя някои разширени функции за рисуване на обекти и форми. Например, можете да използвате pygame.mouse.get_pos() функция за получаване на позицията на мишката и pygame.mouse.get_pressed() функция за получаване на състоянието на бутона на мишката. С тези функции можете да създадете функция за рисуване с щракване, която ви позволява да рисувате фигури чрез щракване с мишката.

импортиране pygame 

# Инициализирайте pygame
pygame.init()

# Създаване на прозорец
прозорец = pygame.display.set_mode((800, 600))

# Основен цикъл
докатоВярно:
# Вземете позицията на мишката
mouse_position = pygame.mouse.get_pos()

# Вземете състоянието на бутона на мишката
mouse_pressed = pygame.mouse.get_pressed()

# Излизане от играта
за събитие в pygame.event.get():
ако event.type == pygame. ИЗХОД:
pygame.quit()
изход()

# Рисуване на кръг при натискане на мишката
ако mouse_pressed[0] == 1:
pygame.draw.circle (прозорец, (255, 0, 0), mouse_position, 20)

# Актуализирайте дисплея
pygame.display.update()

По-долу е резултатът:

Създавайте лесно игрови спрайтове в PyGame

PyGame също така предоставя мощен набор от инструменти за лесно създаване на игрални спрайтове и обекти. С pygame.draw модул, можете лесно да създавате спрайтове, които можете да използвате във вашите игри. Можете да създавате герои, обекти и други елементи на играта с лекота.