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.