Läsare som du hjälper till att stödja MUO. När du gör ett köp med hjälp av länkar på vår webbplats kan vi tjäna en affiliate-provision. Läs mer.

PyGame är ett kraftfullt och populärt spelutvecklingsbibliotek för Python. Den tillhandahåller en uppsättning verktyg och funktioner som gör det lättare att skapa spel och andra interaktiva applikationer. En användbar funktion hos PyGame är dess förmåga att rita objekt och former.

Modulen pygame.draw

I PyGame är det en enkel process att rita objekt och former. Du kan använda pygame.draw modul för att rita former som rektanglar, cirklar, linjer och mer.

Innan du börjar, se till att du har pip installerad på din enhet, använd sedan det här kommandot för att installera PyGame modul:

pip installera pygame

Rita grundläggande former

De pygame.draw modulen innehåller flera funktioner som låter dig rita grundläggande former. Varje funktion kräver en uppsättning parametrar för att definiera formen och dess position.

  • rect(): Du kan rita en rektangel med den här funktionen. Detta är en av de mest använda formerna i spel. Du kan skapa plattformar, väggar och andra objekt med rektanglar. Funktionen tar fyra parametrar: yta (ytan att rita rektangeln på), färg, rect (ett Rect-objekt) och bredd (linjetjocklek).
    instagram viewer
    pygame.draw.rect (yta, färg, rät, bredd)
  • cirkel(): Rita en cirkel. Det krävs fyra parametrar: yta, färg, pos (cirkelns centrum) och radie.
    pygame.draw.circle (yta, färg, pos, radie)
  • polygon(): Rita en polygon. Det krävs fyra parametrar: yta, färg, punkter (en lista med punkter som definierar polygonens form) och bredd.
    pygame.draw.polygon (yta, färg, punkter, bredd) 
  • linje(): Dra ett streck. Det krävs fyra parametrar: yta, färg, start_pos och end_pos.
    pygame.draw.line (yta, färg, start_pos, end_pos) 

Du kan hitta den fullständiga listan över funktioner och deras parametrar på den officiella PyGame-dokumentation för dragningsmodulen.

Rita komplexa former

Förutom grundläggande former, låter PyGame dig också rita komplexa former som bågar, ellipser och aalines.

  • båge(): Denna funktion ritar en båge på en yta. En båge är en del av en cirkel. Det krävs sex parametrar: yta, färg, rät, startvinkel, slutvinkel och bredd. Ange vinklarna i grader, där 0 grader pekar åt höger och ökar medurs. Breddparametern anger bågens tjocklek.
    pygame.draw.arc (yta, färg, rät, startvinkel, slutvinkel, bredd)
  • ellips(): Rita en ellips på en yta. En ellips är en utsträckt cirkel. Det krävs fyra parametrar: yta, färg, rät och bredd.
    pygame.draw.ellipse (yta, färg, rät, bredd)
  • aaline(): Används för att rita en enda kantutjämningslinje på en yta. Kantutjämning är en teknik som används för att jämna ut kanterna på en form, så att den ser mer naturlig ut. Det krävs fyra parametrar som speglar linje() funktion: yta, färg, start_pos och end_pos.
    pygame.draw.aaline (yta, färg, start_pos, end_pos) 

Skapa kapslade former i PyGame

En annan intressant egenskap hos PyGame är möjligheten att rita former inuti en annan form. Du kan göra det med en kombination av de grundläggande formritningsfunktionerna i PyGame.

För att rita en form inuti en annan form kan du först rita den inre formen och sedan rita den yttre formen ovanpå den. Den inre formen kan vara vilken grundform som helst, till exempel en rektangel eller en cirkel.

Till exempel, för att rita en rektangel inuti en cirkel, kan du använda pygame.draw.circle() funktionen för att rita cirkeln och använd sedan pygame.draw.rect() funktion för att rita rektangeln ovanpå den.

Du kan hitta följande kodexempel i denna GitHub-repo.

Här är ett exempel på ett kodavsnitt som visar hur man ritar en rektangel inuti en cirkel:

importera pygame

# Initiera pygame
pygame.init()

# Skapa ett fönster
window = pygame.display.set_mode((800, 600))

# Skapa en cirkel
circle_rect = pygame.draw.circle (fönster, (255, 255, 255), (400, 300), 100)

# Skapa en yta för rektangeln
rectangle_surface = pygame. Yta((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Rita rektangeln på ytan
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Stryk ytan på cirkeln
window.blit (rektangelyta, (375, 275))

# Huvudslinga
medanSann:
# Avsluta spelet
för händelse i pygame.event.get():
om event.type == pygame. SLUTA MED:
pygame.quit()
utgång()

# Uppdatera displayen
pygame.display.update()

Detta skapar effekten av en rektangel inuti en cirkel. Du kan använda den här tekniken för att skapa mer komplexa former och spelelement genom att kombinera flera former.

Rita bilder

PyGame låter dig också rita bilder. Du kan använda pygame.image.load() funktion för att ladda en bild från en fil och pygame.image.blit() funktion till rita bilden på skärmen.

Syntaxen för pygame.image.load() ser ut så här:

pygame.image.load (filnamn) 

Och här är syntaxen för pygame.image.blit():

pygame.image.blit (image, rect) 

Förutom att ladda och rita bilder tillhandahåller PyGame även flera andra bildrelaterade funktioner. Dessa funktioner låter dig manipulera bilder på olika sätt, såsom skalning, rotering, vändning och beskärning.

Lägger till avancerade funktioner

PyGame tillhandahåller också några avancerade funktioner för att rita objekt och former. Du kan till exempel använda pygame.mouse.get_pos() funktion för att få musens position och pygame.mouse.get_pressed() funktion för att få musknappens status. Med dessa funktioner kan du skapa en klick-för-rit-funktion som låter dig rita former genom att klicka med musen.

importera pygame 

# Initiera pygame
pygame.init()

# Skapa ett fönster
window = pygame.display.set_mode((800, 600))

# Huvudslinga
medanSann:
# Få muspositionen
mouse_position = pygame.mouse.get_pos()

# Få status för musknappen
mouse_pressed = pygame.mouse.get_pressed()

# Avsluta spelet
för händelse i pygame.event.get():
om event.type == pygame. SLUTA MED:
pygame.quit()
utgång()

# Rita en cirkel när musen trycks ned
om mus_tryckt[0] == 1:
pygame.draw.circle (fönster, (255, 0, 0), mouse_position, 20)

# Uppdatera displayen
pygame.display.update()

Nedan är utgången:

Skapa enkelt Game Sprites i PyGame

PyGame tillhandahåller också en kraftfull uppsättning verktyg för att enkelt skapa spelsprites och objekt. Med pygame.draw modul kan du enkelt skapa sprites som du kan använda i dina spel. Du kan skapa karaktärer, objekt och andra spelelement med lätthet.