Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

PyGame je výkonná a populárna knižnica na vývoj hier pre Python. Poskytuje sadu nástrojov a funkcií, ktoré uľahčujú vytváranie hier a iných interaktívnych aplikácií. Jednou z užitočných funkcií PyGame je jej schopnosť kresliť objekty a tvary.

Modul pygame.draw

V PyGame je kreslenie objektov a tvarov jednoduchý proces. Môžete použiť pyhra.kresliť modul na kreslenie tvarov, ako sú obdĺžniky, kruhy, čiary a ďalšie.

Pred začatím sa uistite, že máte pip nainštalovaný na vašom zariadení, potom použite tento príkaz na inštaláciu PyGame modul:

pip install pygame

Kreslenie základných tvarov

The pyhra.kresliť modul poskytuje niekoľko funkcií, ktoré umožňujú kresliť základné tvary. Každá funkcia má súbor parametrov na definovanie tvaru a jeho polohy.

  • rect(): Pomocou tejto funkcie môžete nakresliť obdĺžnik. Toto je jeden z najčastejšie používaných tvarov v hrách. Pomocou obdĺžnikov môžete vytvárať platformy, steny a iné objekty. Funkcia má štyri parametre: povrch (plocha, na ktorú sa má nakresliť obdĺžnik), farba, obdĺžnik (objekt Rect) a šírka (hrúbka čiary).
    instagram viewer
    pygame.draw.rect (povrch, farba, obdĺžnik, šírka)
  • kruh(): Nakreslite kruh. Má štyri parametre: povrch, farbu, polohu (stred kruhu) a polomer.
    pygame.draw.circle (plocha, farba, poloha, polomer)
  • polygón(): Nakreslite mnohouholník. Má štyri parametre: povrch, farbu, body (zoznam bodov, ktoré definujú tvar mnohouholníka) a šírku.
    pygame.draw.polygón (povrch, farba, body, šírka) 
  • riadok(): Nakresli čiaru. Vyžaduje štyri parametre: povrch, farba, štart_pos a end_pos.
    pygame.draw.line (povrch, farba, začiatok_pozície, koniec_pozície) 

Kompletný zoznam funkcií a ich parametrov nájdete na oficiálnom Dokumentácia PyGame pre modul draw.

Kreslenie zložitých tvarov

Okrem základných tvarov vám PyGame umožňuje kresliť aj zložité tvary, ako sú oblúky, elipsy a čiary.

  • oblúk (): Táto funkcia nakreslí na plochu oblúk. Oblúk je časť kruhu. Vyžaduje šesť parametrov: povrch, farbu, obdĺžnik, počiatočný_uhol, koncový_uhol a šírku. Zadajte uhly v stupňoch, pričom 0 stupňov ukazuje doprava a zvyšuje sa v smere hodinových ručičiek. Parameter šírka určuje hrúbku oblúka.
    pygame.draw.arc (plocha, farba, obdĺžnik, počiatočný_uhol, koncový_uhol, šírka)
  • elipsa(): Nakreslite elipsu na plochu. Elipsa je natiahnutý kruh. Má štyri parametre: povrch, farbu, obdĺžnik a šírku.
    pygame.draw.ellipse (povrch, farba, obdĺžnik, šírka)
  • aaline(): Používa sa na nakreslenie jednej vyhladenej čiary na povrch. Anti-aliasing je technika používaná na vyhladenie okrajov tvaru, takže vyzerá prirodzenejšie. Vyžaduje štyri parametre, ktoré odzrkadľujú riadok() funkcia: povrch, farba, počiatočná_pozícia a koncová_pozícia.
    pygame.draw.aaline (povrch, farba, začiatok_pos, koniec_pozície) 

Vytváranie vnorených tvarov v PyGame

Ďalšou zaujímavou funkciou PyGame je možnosť kresliť tvary do iného tvaru. Môžete tak urobiť pomocou kombinácie základných funkcií kreslenia tvarov v PyGame.

Ak chcete nakresliť tvar do iného tvaru, môžete najskôr nakresliť vnútorný tvar a potom naň nakresliť vonkajší tvar. Vnútorný tvar môže byť akýkoľvek základný tvar, ako je obdĺžnik alebo kruh.

Ak chcete napríklad nakresliť obdĺžnik do kruhu, môžete použiť pygame.draw.circle() nakreslite kruh a potom použite funkciu pygame.draw.rect() funkcia nakresliť naň obdĺžnik.

Nasledujúce ukážky kódu nájdete v toto úložisko GitHub.

Tu je príklad útržku kódu, ktorý ukazuje, ako nakresliť obdĺžnik vo vnútri kruhu:

importovať pygame

# Inicializujte pygame
pygame.init()

# Vytvorte okno
okno = pygame.display.set_mode((800, 600))

# Vytvorte kruh
circle_rect = pygame.draw.circle (okno, (255, 255, 255), (400, 300), 100)

# Vytvorte plochu pre obdĺžnik
obdĺžnikový_povrch = pygame. Povrch((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Nakreslite obdĺžnik na povrch
pygame.draw.rect (obdĺžnikový_povrch, (255, 0, 0), (0, 0, 50, 50))

# Blit povrch na kruh
window.blit (obdĺžnikový_povrch, (375, 275))

# Hlavná slučka
zatiaľ čoPravda:
# Ukončenie hry
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
pygame.quit()
VÝCHOD()

# Aktualizujte displej
pygame.display.update()

Tým sa vytvorí efekt obdĺžnika vo vnútri kruhu. Túto techniku ​​môžete použiť na vytváranie zložitejších tvarov a herných prvkov kombináciou viacerých tvarov.

Kreslenie obrázkov

PyGame vám tiež umožňuje kresliť obrázky. Môžete použiť pygame.image.load() funkcia na načítanie obrázka zo súboru a pygame.image.blit() fungovať nakreslite obrázok na obrazovku.

Syntax pre pygame.image.load() vyzerá takto:

pygame.image.load (názov súboru) 

A tu je syntax pre pygame.image.blit():

pygame.image.blit (obrázok, obdĺžnik) 

Okrem načítania a kreslenia obrázkov poskytuje PyGame aj niekoľko ďalších funkcií súvisiacich s obrázkami. Tieto funkcie vám umožňujú manipulovať s obrázkami rôznymi spôsobmi, ako je zmena mierky, otáčanie, prevracanie a orezávanie.

Pridanie pokročilých funkcií

PyGame tiež poskytuje niektoré pokročilé funkcie na kreslenie objektov a tvarov. Môžete napríklad použiť pygame.mouse.get_pos() funkcia na získanie polohy myši a pygame.mouse.get_pressed() funkcia na získanie stavu tlačidla myši. Pomocou týchto funkcií môžete vytvoriť funkciu kreslenia kliknutím, ktorá vám umožní kresliť tvary kliknutím myšou.

importovať pygame 

# Inicializujte pygame
pygame.init()

# Vytvorte okno
okno = pygame.display.set_mode((800, 600))

# Hlavná slučka
zatiaľ čoPravda:
# Získajte polohu myši
mouse_position = pygame.mouse.get_pos()

# Získajte stav tlačidla myši
mouse_pressed = pygame.mouse.get_pressed()

# Ukončenie hry
pre udalosť v pygame.event.get():
ak event.type == pygame. UKONČIŤ:
pygame.quit()
VÝCHOD()

# Kreslenie kruhu pri stlačení myši
ak stlačený_myšou[0] == 1:
pygame.draw.circle (okno, (255, 0, 0), mouse_position, 20)

# Aktualizujte displej
pygame.display.update()

Nižšie je výstup:

Jednoducho vytvorte herných škriatkov v PyGame

PyGame tiež poskytuje výkonnú sadu nástrojov na jednoduché vytváranie herných škriatkov a objektov. S pyhra.kresliť modul, môžete ľahko vytvárať sprite, ktoré môžete použiť vo svojich hrách. Môžete ľahko vytvárať postavy, predmety a ďalšie herné prvky.