Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

PyGame er et kraftfuldt og populært spiludviklingsbibliotek til Python. Det giver et sæt værktøjer og funktioner, der gør det nemmere at skabe spil og andre interaktive applikationer. En nyttig funktion ved PyGame er dens evne til at tegne objekter og former.

pygame.draw-modulet

I PyGame er det en ligetil proces at tegne objekter og former. Du kan bruge pygame.draw modul til at tegne figurer som rektangler, cirkler, linjer og mere.

Før du starter, skal du sikre dig, at du har pip installeret på din enhed, og brug derefter denne kommando til at installere PyGame modul:

pip installer pygame

Tegning af grundlæggende former

Det pygame.draw modul giver flere funktioner, der giver dig mulighed for at tegne grundlæggende former. Hver funktion kræver et sæt parametre for at definere formen og dens position.

  • rect(): Du kan tegne et rektangel ved hjælp af denne funktion. Dette er en af ​​de mest brugte former i spil. Du kan oprette platforme, vægge og andre objekter med rektangler. Funktionen tager fire parametre: overflade (overfladen til at tegne rektanglet på), farve, rect (et Rect-objekt) og bredde (linjetykkelse).
    instagram viewer
    pygame.draw.rect (overflade, farve, rekt, bredde)
  • cirkel(): Tegn en cirkel. Det kræver fire parametre: overflade, farve, pos (centret af cirklen) og radius.
    pygame.draw.circle (overflade, farve, pos, radius)
  • polygon(): Tegn en polygon. Det kræver fire parametre: overflade, farve, punkter (en liste over punkter, der definerer polygonens form) og bredde.
    pygame.draw.polygon (overflade, farve, punkter, bredde) 
  • linje(): Tegn en streg. Det kræver fire parametre: overflade, farve, start_pos og end_pos.
    pygame.draw.line (overflade, farve, start_pos, end_pos) 

Du kan finde den komplette liste over funktioner og deres parametre på den officielle PyGame dokumentation for lodtrækningsmodulet.

Tegning af komplekse former

Ud over grundlæggende former giver PyGame dig også mulighed for at tegne komplekse former som buer, ellipser og aalines.

  • bue(): Denne funktion tegner en bue på en overflade. En bue er en del af en cirkel. Det kræver seks parametre: overflade, farve, rect, start_angle, end_angle og width. Angiv vinklerne i grader, hvor 0 grader peger mod højre og stigende med uret. Breddeparameteren angiver tykkelsen af ​​buen.
    pygame.draw.arc (overflade, farve, rect, start_angle, end_angle, width)
  • ellipse(): Tegn en ellipse på en overflade. En ellipse er en strakt cirkel. Det kræver fire parametre: overflade, farve, ret og bredde.
    pygame.draw.ellipse (overflade, farve, rekt, bredde)
  • aaline(): Bruges til at tegne en enkelt kantudjævningslinje på en overflade. Anti-aliasing er en teknik, der bruges til at glatte kanterne af en form, så den ser mere naturlig ud. Det kræver fire parametre, der afspejler linje() funktion: overflade, farve, start_pos og end_pos.
    pygame.draw.aaline (overflade, farve, start_pos, end_pos) 

Oprettelse af indlejrede former i PyGame

Et andet interessant træk ved PyGame er evnen til at tegne figurer inde i en anden form. Du kan gøre det ved at bruge en kombination af de grundlæggende formtegningsfunktioner i PyGame.

For at tegne en form inde i en anden form, kan du først tegne den indre form og derefter tegne den ydre form oven på den. Den indre form kan være en hvilken som helst grundform, såsom et rektangel eller en cirkel.

For eksempel, for at tegne et rektangel inde i en cirkel, kan du bruge pygame.draw.circle() funktion til at tegne cirklen, og brug derefter pygame.draw.rect() funktion til at tegne rektanglet oven på det.

Du kan finde følgende kodeeksempler i denne GitHub-repo.

Her er et eksempel på et kodestykke, der viser, hvordan man tegner et rektangel inde i en cirkel:

importere pygame

# Initialiser pygame
pygame.init()

# Opret et vindue
vindue = pygame.display.set_mode((800, 600))

# Opret en cirkel
circle_rect = pygame.draw.circle (vindue, (255, 255, 255), (400, 300), 100)

# Lav en overflade til rektanglet
rectangle_surface = pygame. Overflade((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Tegn rektanglet på overfladen
pygame.draw.rect (rektangel_overflade, (255, 0, 0), (0, 0, 50, 50))

# Skær overfladen på cirklen
window.blit (rektangel_overflade, (375, 275))

# Hovedsløjfe
mensRigtigt:
# Afslut spillet
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
pygame.quit()
Afslut()

# Opdater displayet
pygame.display.update()

Dette skaber effekten af ​​et rektangel inde i en cirkel. Du kan bruge denne teknik til at skabe mere komplekse former og spilelementer ved at kombinere flere former.

Tegning af billeder

PyGame giver dig også mulighed for at tegne billeder. Du kan bruge pygame.image.load() funktion til at indlæse et billede fra en fil og pygame.image.blit() funktion til tegne billedet på skærmen.

Syntaksen for pygame.image.load() ser sådan ud:

pygame.image.load (filnavn) 

Og her er syntaksen for pygame.image.blit():

pygame.image.blit (image, rect) 

Udover at indlæse og tegne billeder giver PyGame også flere andre billedrelaterede funktioner. Disse funktioner giver dig mulighed for at manipulere billeder på forskellige måder, såsom skalering, rotation, vending og beskæring.

Tilføjelse af avancerede funktioner

PyGame giver også nogle avancerede funktioner til at tegne objekter og former. Du kan f.eks. bruge pygame.mouse.get_pos() funktion for at få musens position og pygame.mouse.get_pressed() funktion for at få museknappens tilstand. Med disse funktioner kan du oprette en klik-for-tegn-funktion, der giver dig mulighed for at tegne figurer ved at klikke med musen.

importere pygame 

# Initialiser pygame
pygame.init()

# Opret et vindue
vindue = pygame.display.set_mode((800, 600))

# Hovedsløjfe
mensRigtigt:
# Få musepositionen
mouse_position = pygame.mouse.get_pos()

# Få tilstanden til museknappen
mouse_pressed = pygame.mouse.get_pressed()

# Afslut spillet
til begivenhed i pygame.event.get():
hvis event.type == pygame. AFSLUT:
pygame.quit()
Afslut()

# Tegning af en cirkel, når der trykkes på musen
hvis musetrykket[0] == 1:
pygame.draw.circle (vindue, (255, 0, 0), museposition, 20)

# Opdater displayet
pygame.display.update()

Nedenfor er output:

Opret nemt Game Sprites i PyGame

PyGame giver også et kraftfuldt sæt værktøjer til nemt at skabe spilsprites og objekter. Med pygame.draw modul, kan du nemt oprette sprites, som du kan bruge i dine spil. Du kan nemt skabe figurer, objekter og andre spilelementer.