Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

PyGame je výkonná a oblíbená knihovna pro vývoj her pro Python. Poskytuje sadu nástrojů a funkcí, které usnadňují vytváření her a dalších interaktivních aplikací. Jednou z užitečných funkcí PyGame je její schopnost kreslit objekty a tvary.

Modul pygame.draw

V PyGame je kreslení objektů a tvarů přímočarý proces. Můžete použít pygame.kreslit modul pro kreslení tvarů, jako jsou obdélníky, kruhy, čáry a další.

Než začnete, ujistěte se, že máte pip nainstalovaný na vašem zařízení, poté použijte tento příkaz k instalaci PyGame modul:

pip nainstalovat pygame

Kreslení základních tvarů

The pygame.kreslit modul poskytuje několik funkcí, které vám umožní kreslit základní tvary. Každá funkce vyžaduje sadu parametrů k definování tvaru a jeho polohy.

  • rect(): Pomocí této funkce můžete nakreslit obdélník. Jedná se o jeden z nejčastěji používaných tvarů ve hrách. Pomocí obdélníků můžete vytvářet platformy, stěny a další objekty. Funkce přebírá čtyři parametry: povrch (povrch, na který se má nakreslit obdélník), barva, obdélník (objekt Rect) a šířka (tloušťka čáry).
    pygame.draw.rect (povrch, barva, obdélník, šířka)
  • kruh(): Nakreslete kruh. Vyžaduje čtyři parametry: povrch, barvu, pozici (střed kruhu) a poloměr.
    pygame.draw.circle (plocha, barva, pozice, poloměr)
  • polygon(): Nakreslete mnohoúhelník. Má čtyři parametry: povrch, barvu, body (seznam bodů, které definují tvar polygonu) a šířku.
    pygame.draw.polygon (povrch, barva, body, šířka) 
  • čára(): Nakresli čáru. Vyžaduje čtyři parametry: povrch, barvu, start_pos a end_pos.
    pygame.draw.line (plocha, barva, počáteční_pozice, koncová_pozice) 

Kompletní seznam funkcí a jejich parametry najdete na oficialitě Dokumentace PyGame pro modul draw.

Kreslení složitých tvarů

Kromě základních tvarů vám PyGame také umožňuje kreslit složité tvary, jako jsou oblouky, elipsy a čáry.

  • oblouk(): Tato funkce nakreslí oblouk na plochu. Oblouk je část kruhu. Vyžaduje šest parametrů: povrch, barva, obdélník, počáteční_úhel, koncový_úhel a šířka. Zadejte úhly ve stupních, přičemž 0 stupňů ukazuje doprava a zvyšuje se ve směru hodinových ručiček. Parametr width určuje tloušťku oblouku.
    pygame.draw.arc (plocha, barva, obdélník, počáteční_úhel, koncový_úhel, šířka)
  • elipsa(): Nakreslete elipsu na plochu. Elipsa je protažený kruh. Vyžaduje čtyři parametry: povrch, barvu, obdélník a šířku.
    pygame.draw.ellipse (povrch, barva, obdélník, šířka)
  • aaline(): Použijte k nakreslení jedné vyhlazené čáry na plochu. Anti-aliasing je technika používaná k vyhlazení okrajů tvaru, takže vypadá přirozeněji. Vyžaduje čtyři parametry, které odrážejí čára() funkce: povrch, barva, start_pos a end_pos.
    pygame.draw.aaline (povrch, barva, start_pos, end_pos) 

Vytváření vnořených tvarů v PyGame

Další zajímavou funkcí PyGame je možnost kreslit tvary uvnitř jiného tvaru. Můžete tak učinit pomocí kombinace základních funkcí kreslení tvarů v PyGame.

Chcete-li nakreslit tvar uvnitř jiného tvaru, můžete nejprve nakreslit vnitřní tvar a poté na něj nakreslit vnější tvar. Vnitřní tvar může být jakýkoli základní tvar, jako je obdélník nebo kruh.

Chcete-li například nakreslit obdélník uvnitř kruhu, můžete použít pygame.draw.circle() funkci nakreslete kružnici a poté použijte pygame.draw.rect() funkci nakreslit na něj obdélník.

Následující ukázky kódu najdete v toto úložiště GitHub.

Zde je příklad úryvku kódu, který ukazuje, jak nakreslit obdélník uvnitř kruhu:

import pygame

# Inicializujte pygame
pygame.init()

# Vytvořte okno
window = pygame.display.set_mode((800, 600))

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

# Vytvořte plochu pro obdélník
obdélníkový_povrch = pygame. Povrch((50, 50))
obdélníkový_povrch.set_colorkey((0, 0, 0))

# Nakreslete obdélník na plochu
pygame.draw.rect (obdélníková_plocha, (255, 0, 0), (0, 0, 50, 50))

# Vysušte povrch na kruh
window.blit (obdélníkový_povrch, (375, 275))

# Hlavní smyčka
zatímcoSkutečný:
# Ukončení hry
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
pygame.quit()
výstup()

# Aktualizujte displej
pygame.display.update()

Tím se vytvoří efekt obdélníku uvnitř kruhu. Tuto techniku ​​můžete použít k vytvoření složitějších tvarů a herních prvků kombinací více tvarů.

Kreslení obrázků

PyGame také umožňuje kreslit obrázky. Můžete použít pygame.image.load() funkce pro načtení obrázku ze souboru a pygame.image.blit() funkce do nakreslete obrázek na obrazovku.

Syntaxe pro pygame.image.load() vypadá takto:

pygame.image.load (název souboru) 

A zde je syntaxe pro pygame.image.blit():

pygame.image.blit (obrázek, obdélník) 

Kromě načítání a kreslení obrázků poskytuje PyGame také několik dalších funkcí souvisejících s obrázky. Tyto funkce umožňují manipulovat s obrázky různými způsoby, jako je změna měřítka, otočení, převrácení a oříznutí.

Přidání pokročilých funkcí

PyGame také poskytuje některé pokročilé funkce pro kreslení objektů a tvarů. Můžete například použít pygame.mouse.get_pos() funkce pro získání pozice myši a pygame.mouse.get_pressed() funkce pro získání stavu tlačítka myši. Pomocí těchto funkcí můžete vytvořit funkci kreslení kliknutím, která vám umožní kreslit tvary kliknutím myši.

import pygame 

# Inicializujte pygame
pygame.init()

# Vytvořte okno
window = pygame.display.set_mode((800, 600))

# Hlavní smyčka
zatímcoSkutečný:
# Získejte pozici myši
mouse_position = pygame.mouse.get_pos()

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

# Ukončení hry
pro událost v pygame.event.get():
-li event.type == pygame. PŘESTAT:
pygame.quit()
výstup()

# Kreslení kruhu při stisku myši
-li stisknuto_myší[0] == 1:
pygame.draw.circle (okno, (255, 0, 0), pozice myši, 20)

# Aktualizujte displej
pygame.display.update()

Níže je výstup:

Snadno vytvářejte herní skřítky v PyGame

PyGame také poskytuje výkonnou sadu nástrojů pro snadné vytváření herních skřítků a objektů. s pygame.kreslit modulu, můžete snadno vytvářet sprity, které můžete použít ve svých hrách. Můžete snadno vytvářet postavy, předměty a další herní prvky.