PyGame er et kraftig og populært spillutviklingsbibliotek for Python. Den har et sett med verktøy og funksjoner som gjør det enklere å lage spill og andre interaktive applikasjoner. En nyttig funksjon i PyGame er evnen til å tegne objekter og former.
pygame.draw-modulen
I PyGame er tegning av objekter og former en enkel prosess. Du kan bruke pygame.draw modul for å tegne former som rektangler, sirkler, linjer og mer.
Før du starter, sørg for at du har pip installert på enheten din, bruk deretter denne kommandoen til å installere PyGame modul:
pip installer pygame
Tegne grunnleggende former
De pygame.draw modul gir flere funksjoner som lar deg tegne grunnleggende former. Hver funksjon krever et sett med parametere for å definere formen og dens posisjon.
-
rect(): Du kan tegne et rektangel ved å bruke denne funksjonen. Dette er en av de mest brukte formene i spill. Du kan lage plattformer, vegger og andre objekter med rektangler. Funksjonen tar fire parametere: overflate (overflaten å tegne rektangelet på), farge, rect (et Rect-objekt) og bredde (linjetykkelse).
pygame.draw.rect (overflate, farge, rekt, bredde)
-
sirkel(): Tegn en sirkel. Det tar fire parametere: overflate, farge, pos (sentrum av sirkelen) og radius.
pygame.draw.circle (overflate, farge, pos, radius)
-
polygon(): Tegn en polygon. Det krever fire parametere: overflate, farge, punkter (en liste over punkter som definerer formen på polygonet) og bredde.
pygame.draw.polygon (overflate, farge, punkter, bredde)
-
linje(): Tegn en linje. Det tar fire parametere: overflate, farge, start_pos og end_pos.
pygame.draw.line (overflate, farge, start_pos, end_pos)
Du kan finne den komplette listen over funksjoner og deres parametere på den offisielle PyGame-dokumentasjon for trekningsmodulen.
Tegne komplekse former
I tillegg til grunnleggende former lar PyGame deg også tegne komplekse former som buer, ellipser og aalines.
-
bue(): Denne funksjonen tegner en bue på en overflate. En bue er en del av en sirkel. Det tar seks parametere: overflate, farge, rekt, startvinkel, sluttvinkel og bredde. Spesifiser vinklene i grader, med 0 grader pekende til høyre og økende med klokken. Breddeparameteren spesifiserer tykkelsen på buen.
pygame.draw.arc (overflate, farge, rekt, startvinkel, sluttvinkel, bredde)
-
ellipse(): Tegn en ellipse på en overflate. En ellipse er en strukket sirkel. Det krever fire parametere: overflate, farge, rekt og bredde.
pygame.draw.ellipse (overflate, farge, rekt, bredde)
-
aaline(): Brukes til å tegne en enkelt kantlinje på en overflate. Anti-aliasing er en teknikk som brukes til å jevne ut kantene på en form, slik at den ser mer naturlig ut. Det krever fire parametere som speiler linje() funksjon: overflate, farge, start_pos og end_pos.
pygame.draw.aaline (overflate, farge, start_pos, end_pos)
Opprette nestede former i PyGame
En annen interessant funksjon ved PyGame er muligheten til å tegne figurer inne i en annen form. Du kan gjøre det ved å bruke en kombinasjon av de grunnleggende formtegningsfunksjonene i PyGame.
For å tegne en form inne i en annen form, kan du først tegne den indre formen, og deretter tegne den ytre formen oppå den. Den indre formen kan være en hvilken som helst grunnform, for eksempel et rektangel eller en sirkel.
For eksempel, for å tegne et rektangel inne i en sirkel, kan du bruke pygame.draw.circle() funksjonen for å tegne sirkelen, og bruk deretter pygame.draw.rect() funksjon for å tegne rektangelet på toppen av det.
Du kan finne følgende kodeeksempler i denne GitHub-repoen.
Her er et eksempel på en kodebit som viser hvordan du tegner et rektangel i en sirkel:
import pygame
# Initialiser pygame
pygame.init()# Lag et vindu
window = pygame.display.set_mode((800, 600))# Lag en sirkel
circle_rect = pygame.draw.circle (vindu, (255, 255, 255), (400, 300), 100)# Lag en overflate for rektangelet
rectangle_surface = pygame. Flate((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))# Tegn rektangelet på overflaten
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))# Stryk overflaten på sirkelen
window.blit (rektangeloverflate, (375, 275))# Hovedsløyfe
samtidig somekte:
# Avslutte spillet
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
pygame.quit()
exit()
# Oppdater skjermen
pygame.display.update()
Dette skaper effekten av et rektangel inne i en sirkel. Du kan bruke denne teknikken til å lage mer komplekse former og spillelementer ved å kombinere flere former.
Tegne bilder
PyGame lar deg også tegne bilder. Du kan bruke pygame.image.load() funksjon for å laste et bilde fra en fil og pygame.image.blit() funksjon til tegne bildet på skjermen.
Syntaksen for pygame.image.load() ser slik ut:
pygame.image.load (filnavn)
Og her er syntaksen for pygame.image.blit():
pygame.image.blit (image, rect)
I tillegg til å laste og tegne bilder, tilbyr PyGame også flere andre bilderelaterte funksjoner. Disse funksjonene lar deg manipulere bilder på forskjellige måter, for eksempel skalering, rotering, vending og beskjæring.
Legger til avanserte funksjoner
PyGame har også noen avanserte funksjoner for å tegne objekter og former. Du kan for eksempel bruke pygame.mouse.get_pos() funksjon for å få museposisjonen og pygame.mouse.get_pressed() funksjon for å få museknappstatus. Med disse funksjonene kan du lage en klikk-for-tegn-funksjon som lar deg tegne figurer ved å klikke med musen.
import pygame
# Initialiser pygame
pygame.init()# Lag et vindu
window = pygame.display.set_mode((800, 600))# Hovedsløyfe
samtidig somekte:
# Få museposisjonen
mouse_position = pygame.mouse.get_pos()# Få status for museknappen
mouse_pressed = pygame.mouse.get_pressed()# Avslutte spillet
til begivenhet i pygame.event.get():
hvis event.type == pygame. SLUTTE:
pygame.quit()
exit()# Tegne en sirkel når musen trykkes
hvis musetrykket[0] == 1:
pygame.draw.circle (vindu, (255, 0, 0), museposisjon, 20)
# Oppdater skjermen
pygame.display.update()
Nedenfor er utgangen:
Lag enkelt Game Sprites i PyGame
PyGame tilbyr også et kraftig sett med verktøy for enkelt å lage spillsprites og objekter. Med pygame.draw modul, kan du enkelt lage sprites som du kan bruke i spillene dine. Du kan enkelt lage karakterer, objekter og andre spillelementer.