PyGame е мощна и популярна библиотека за разработка на игри за Python. Той предоставя набор от инструменти и функции, които улесняват създаването на игри и други интерактивни приложения. Една полезна функция на PyGame е способността му да рисува обекти и форми.
Модулът pygame.draw
В PyGame рисуването на обекти и форми е лесен процес. Можете да използвате pygame.draw модул за рисуване на фигури като правоъгълници, кръгове, линии и др.
Преди да започнете, уверете се, че имате pip, инсталиран на вашето устройство, след това използвайте тази команда, за да инсталирате PyGame модул:
pip инсталирайте pygame
Рисуване на основни фигури
The pygame.draw модул предоставя няколко функции, които ви позволяват да рисувате основни форми. Всяка функция приема набор от параметри, за да дефинира формата и нейната позиция.
-
прав(): Можете да начертаете правоъгълник с помощта на тази функция. Това е една от най-често използваните форми в игрите. Можете да създавате платформи, стени и други обекти с правоъгълници. Функцията приема четири параметъра: повърхност (повърхността, върху която да нарисувате правоъгълника), цвят, rect (обект Rect) и ширина (дебелина на линията).
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 модул, можете лесно да създавате спрайтове, които можете да използвате във вашите игри. Можете да създавате герои, обекти и други елементи на играта с лекота.