Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

PyGame este o bibliotecă de dezvoltare de jocuri puternică și populară pentru Python. Oferă un set de instrumente și funcții care facilitează crearea de jocuri și alte aplicații interactive. O caracteristică utilă a PyGame este capacitatea sa de a desena obiecte și forme.

Modulul pygame.draw

În PyGame, desenarea obiectelor și a formelor este un proces simplu. Puteți folosi pygame.draw modul pentru a desena forme precum dreptunghiuri, cercuri, linii și multe altele.

Înainte de a începe, asigurați-vă că aveți pip instalat pe dispozitivul dvs, apoi utilizați această comandă pentru a instala PyGame modul:

pip install pygame

Desenarea formelor de bază

The pygame.draw modulul oferă mai multe funcții care vă permit să desenați forme de bază. Fiecare funcție necesită un set de parametri pentru a defini forma și poziția acesteia.

instagram viewer
  • rect(): Puteți desena un dreptunghi folosind această funcție. Aceasta este una dintre cele mai frecvent utilizate forme în jocuri. Puteți crea platforme, pereți și alte obiecte cu dreptunghiuri. Funcția ia patru parametri: suprafață (suprafața pe care se desenează dreptunghiul), culoare, rect (un obiect Rect) și lățime (grosimea liniei).
    pygame.draw.rect (suprafață, culoare, rect, lățime)
  • cerc(): Desenează un cerc. Este nevoie de patru parametri: suprafață, culoare, poziție (centrul cercului) și rază.
    pygame.draw.cercle (suprafață, culoare, poziție, rază)
  • poligon(): Desenați un poligon. Este nevoie de patru parametri: suprafață, culoare, puncte (o listă de puncte care definesc forma poligonului) și lățime.
    pygame.draw.polygon (suprafață, culoare, puncte, lățime) 
  • linia(): Trage o linie. Este nevoie de patru parametri: suprafață, culoare, start_pos și end_pos.
    pygame.draw.line (suprafață, culoare, start_pos, end_pos) 

Lista completă a funcțiilor și parametrii acestora o găsiți pe oficial Documentația PyGame pentru modulul de desen.

Desenarea formelor complexe

Pe lângă formele de bază, PyGame vă permite și să desenați forme complexe, cum ar fi arce, elipse și aline.

  • arc(): Această funcție desenează un arc pe o suprafață. Un arc este o porțiune a unui cerc. Este nevoie de șase parametri: suprafață, culoare, rect, start_angle, end_angle și lățime. Specificați unghiurile în grade, cu 0 grade îndreptate spre dreapta și crescând în sensul acelor de ceasornic. Parametrul lățime specifică grosimea arcului.
    pygame.draw.arc (suprafață, culoare, rect, start_angle, end_angle, lățime)
  • elipsă(): Desenați o elipsă pe o suprafață. O elipsă este un cerc întins. Este nevoie de patru parametri: suprafață, culoare, rect și lățime.
    pygame.draw.ellipse (suprafață, culoare, rect, lățime)
  • aaline(): Utilizați pentru a desena o singură linie anti-alias pe o suprafață. Anti-aliasing este o tehnică folosită pentru a netezi marginile unei forme, astfel încât să pară mai natural. Este nevoie de patru parametri care oglindesc linia() funcția: suprafață, culoare, start_pos și end_pos.
    pygame.draw.aaline (suprafață, culoare, start_pos, end_pos) 

Crearea de forme imbricate în PyGame

O altă caracteristică interesantă a PyGame este capacitatea de a desena forme în interiorul unei alte forme. Puteți face acest lucru folosind o combinație a funcțiilor de bază de desenare a formei din PyGame.

Pentru a desena o formă în interiorul unei alte forme, puteți desena mai întâi forma interioară, apoi desenați forma exterioară deasupra acesteia. Forma interioară poate fi orice formă de bază, cum ar fi un dreptunghi sau un cerc.

De exemplu, pentru a desena un dreptunghi în interiorul unui cerc, puteți utiliza pygame.draw.circle() pentru a desena cercul, apoi utilizați pygame.draw.rect() funcția de a desena dreptunghiul deasupra acestuia.

Puteți găsi următoarele exemple de cod în acest depozit GitHub.

Iată un exemplu de fragment de cod care demonstrează cum să desenezi un dreptunghi în interiorul unui cerc:

import pygame

# Inițializați pygame
pygame.init()

# Creați o fereastră
fereastra = pygame.display.set_mode((800, 600))

# Creați un cerc
circle_rect = pygame.draw.circle (fereastra, (255, 255, 255), (400, 300), 100)

# Creați o suprafață pentru dreptunghi
rectangle_surface = pygame. Suprafaţă((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Desenați dreptunghiul pe suprafață
pygame.draw.rect (suprafață_dreptunghi, (255, 0, 0), (0, 0, 50, 50))

# Blit suprafața pe cerc
window.blit (suprafață_dreptunghi, (375, 275))

# Bucla principală
in timp ceAdevărat:
# Închiderea jocului
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
pygame.quit()
Ieșire()

# Actualizați afișajul
pygame.display.update()

Acest lucru creează efectul unui dreptunghi în interiorul unui cerc. Puteți folosi această tehnică pentru a crea forme mai complexe și elemente de joc prin combinarea mai multor forme.

Desenarea imaginilor

PyGame vă permite, de asemenea, să desenați imagini. Puteți folosi pygame.image.load() funcția de încărcare a unei imagini dintr-un fișier și pygame.image.blit() functia sa desenează imaginea pe ecran.

Sintaxa pentru pygame.image.load() arata asa:

pygame.image.load (nume fișier) 

Și aici este sintaxa pentru pygame.image.blit():

pygame.image.blit (imagine, rect) 

Pe lângă încărcarea și desenarea imaginilor, PyGame oferă și alte câteva funcții legate de imagine. Aceste funcții vă permit să manipulați imaginile în diferite moduri, cum ar fi scalarea, rotirea, răsturnarea și decuparea.

Adăugarea de funcții avansate

PyGame oferă, de asemenea, câteva funcții avansate pentru desenarea obiectelor și a formelor. De exemplu, puteți utiliza pygame.mouse.get_pos() funcția pentru a obține poziția mouse-ului și pygame.mouse.get_pressed() funcția pentru a obține starea butonului mouse-ului. Cu aceste funcții, puteți crea o funcție click-to-draw care vă permite să desenați forme făcând clic cu mouse-ul.

import pygame 

# Inițializați pygame
pygame.init()

# Creați o fereastră
fereastra = pygame.display.set_mode((800, 600))

# Bucla principală
in timp ceAdevărat:
# Obțineți poziția mouse-ului
mouse_position = pygame.mouse.get_pos()

# Obțineți starea butonului mouse-ului
mouse_pressed = pygame.mouse.get_pressed()

# Închiderea jocului
pentru eveniment în pygame.event.get():
dacă event.type == pygame. PĂRĂSI:
pygame.quit()
Ieșire()

# Desenarea unui cerc când este apăsat mouse-ul
dacă mouse_apasat[0] == 1:
pygame.draw.cercle (fereastră, (255, 0, 0), mouse_position, 20)

# Actualizați afișajul
pygame.display.update()

Mai jos este rezultatul:

Creați cu ușurință sprite-uri de joc în PyGame

PyGame oferă, de asemenea, un set puternic de instrumente pentru a crea cu ușurință sprite-uri și obiecte de joc. Cu pygame.draw modul, puteți crea cu ușurință sprite-uri pe care le puteți folosi în jocuri. Puteți crea cu ușurință personaje, obiecte și alte elemente de joc.