Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

PyGame is een krachtige en populaire game-ontwikkelingsbibliotheek voor Python. Het biedt een reeks tools en functies die het eenvoudiger maken om games en andere interactieve toepassingen te maken. Een handige functie van PyGame is de mogelijkheid om objecten en vormen te tekenen.

De pygame.draw-module

In PyGame is het tekenen van objecten en vormen een eenvoudig proces. U kunt de pygame.tekenen module om vormen zoals rechthoeken, cirkels, lijnen en meer te tekenen.

Voordat u begint, moet u ervoor zorgen dat u dat hebt gedaan pip op uw apparaat geïnstalleerd, gebruik dan deze opdracht om het PyGame moduul:

pip installeer pygame

Basisvormen tekenen

De pygame.tekenen module biedt verschillende functies waarmee u basisvormen kunt tekenen. Elke functie heeft een set parameters nodig om de vorm en zijn positie te definiëren.

  • rectificeren(): Met deze functie kunt u een rechthoek tekenen. Dit is een van de meest gebruikte vormen in games. U kunt platforms, muren en andere objecten met rechthoeken maken. De functie heeft vier parameters nodig: oppervlak (het oppervlak waarop de rechthoek moet worden getekend), kleur, rect (een Rect-object) en breedte (lijndikte).
    instagram viewer
    pygame.draw.rect (oppervlak, kleur, rect, breedte)
  • cirkel(): Teken een cirkel. Er zijn vier parameters voor nodig: oppervlak, kleur, pos (het middelpunt van de cirkel) en straal.
    pygame.draw.circle (oppervlak, kleur, positie, straal)
  • veelhoek(): Teken een veelhoek. Er zijn vier parameters voor nodig: oppervlak, kleur, punten (een lijst met punten die de vorm van de veelhoek bepalen) en breedte.
    pygame.draw.polygon (oppervlak, kleur, punten, breedte) 
  • lijn(): Teken een lijn. Er zijn vier parameters nodig: oppervlak, kleur, start_pos en end_pos.
    pygame.draw.line (oppervlak, kleur, start_pos, end_pos) 

U vindt de volledige lijst met functies en hun parameters op de officiële website PyGame-documentatie voor de tekenmodule.

Complexe vormen tekenen

Naast basisvormen kunt u met PyGame ook complexe vormen tekenen, zoals bogen, ellipsen en aallijnen.

  • boog(): Deze functie tekent een boog op een oppervlak. Een boog is een deel van een cirkel. Er zijn zes parameters voor nodig: oppervlak, kleur, rect, starthoek, eindhoek en breedte. Geef de hoeken op in graden, waarbij 0 graden naar rechts wijst en met de klok mee toeneemt. De parameter width specificeert de dikte van de boog.
    pygame.draw.arc (oppervlak, kleur, rect, beginhoek, eindhoek, breedte)
  • Ovaal(): Teken een ellips op een oppervlak. Een ellips is een uitgerekte cirkel. Er zijn vier parameters nodig: oppervlak, kleur, rect en breedte.
    pygame.draw.ellipse (oppervlak, kleur, rect, breedte)
  • aaline(): gebruik om een ​​enkele anti-aliaslijn op een oppervlak te tekenen. Anti-aliasing is een techniek die wordt gebruikt om de randen van een vorm glad te strijken, zodat deze er natuurlijker uitziet. Er zijn vier parameters nodig die de spiegel weerspiegelen lijn() functie: oppervlak, kleur, start_pos en end_pos.
    pygame.draw.aaline (oppervlak, kleur, start_pos, end_pos) 

Geneste vormen maken in PyGame

Een ander interessant kenmerk van PyGame is de mogelijkheid om vormen in een andere vorm te tekenen. U kunt dit doen met een combinatie van de basisfuncties voor het tekenen van vormen in PyGame.

Als u een vorm in een andere vorm wilt tekenen, tekent u eerst de binnenste vorm en vervolgens de buitenste vorm er bovenop. De binnenvorm kan elke basisvorm zijn, zoals een rechthoek of een cirkel.

Om bijvoorbeeld een rechthoek binnen een cirkel te tekenen, kunt u de pygame.draw.circle() functie om de cirkel te tekenen en gebruik vervolgens de pygame.draw.rect() functie om de rechthoek er bovenop te tekenen.

U kunt de volgende codevoorbeelden vinden in deze GitHub-opslagplaats.

Hier is een voorbeeld van een codefragment dat laat zien hoe je een rechthoek in een cirkel tekent:

importeren pyspel

# Initialiseer pygame
pygame.init()

# Maak een venster
venster = pygame.display.set_mode((800, 600))

# Maak een cirkel
circle_rect = pygame.draw.circle (venster, (255, 255, 255), (400, 300), 100)

# Maak een oppervlak voor de rechthoek
rechthoek_oppervlak = pygame. Oppervlak((50, 50))
rechthoek_oppervlak.set_colorkey((0, 0, 0))

# Teken de rechthoek op het oppervlak
pygame.draw.rect (rechthoek_oppervlak, (255, 0, 0), (0, 0, 50, 50))

# Blit het oppervlak op de cirkel
venster.blit (rechthoek_oppervlak, (375, 275))

# Hoofdlus
terwijlWAAR:
# Het spel afsluiten
voor evenement in pygame.event.get():
als event.type == pygame. ONTSLAG NEMEN:
pygame.quit()
Uitgang()

# Werk de weergave bij
pygame.display.update()

Dit creëert het effect van een rechthoek in een cirkel. Je kunt deze techniek gebruiken om complexere vormen en spelelementen te maken door meerdere vormen te combineren.

Afbeeldingen tekenen

Met PyGame kun je ook afbeeldingen tekenen. U kunt de pygame.afbeelding.laden() functie om een ​​afbeelding uit een bestand te laden en de pygame.afbeelding.blit() functie naar teken de afbeelding op het scherm.

De syntaxis voor pygame.afbeelding.laden() het lijkt hierop:

pygame.image.load (bestandsnaam) 

En hier is de syntaxis voor pygame.afbeelding.blit():

pygame.image.blit (afbeelding, rect) 

Naast het laden en tekenen van afbeeldingen, biedt PyGame ook verschillende andere afbeeldingsgerelateerde functies. Met deze functies kunt u afbeeldingen op verschillende manieren manipuleren, zoals schalen, roteren, spiegelen en bijsnijden.

Geavanceerde functies toevoegen

PyGame biedt ook enkele geavanceerde functies voor het tekenen van objecten en vormen. U kunt bijvoorbeeld de pygame.mouse.get_pos() functie om de muispositie en de pygame.mouse.get_press() functie om de status van de muisknop te krijgen. Met deze functies kunt u een click-to-draw-functie maken waarmee u vormen kunt tekenen door met de muis te klikken.

importeren pyspel 

# Initialiseer pygame
pygame.init()

# Maak een venster
venster = pygame.display.set_mode((800, 600))

# Hoofdlus
terwijlWAAR:
# Verkrijg de muispositie
mouse_position = pygame.mouse.get_pos()

# Krijg de status van de muisknop
mouse_pressed = pygame.mouse.get_pressed()

# Het spel afsluiten
voor evenement in pygame.event.get():
als event.type == pygame. ONTSLAG NEMEN:
pygame.quit()
Uitgang()

# Een cirkel tekenen wanneer de muis wordt ingedrukt
als muis ingedrukt[0] == 1:
pygame.draw.circle (venster, (255, 0, 0), mouse_position, 20)

# Werk de weergave bij
pygame.display.update()

Hieronder is de uitvoer:

Creëer eenvoudig Game Sprites in PyGame

PyGame biedt ook een krachtige set tools om eenvoudig game-sprites en objecten te maken. Met de pygame.tekenen module kun je eenvoudig sprites maken die je in je games kunt gebruiken. Je kunt met gemak personages, objecten en andere spelelementen maken.