A PyGame egy erőteljes és népszerű játékfejlesztő könyvtár a Python számára. Olyan eszközöket és funkciókat biztosít, amelyek megkönnyítik a játékok és más interaktív alkalmazások létrehozását. A PyGame egyik hasznos tulajdonsága, hogy képes objektumokat és alakzatokat rajzolni.
A pygame.draw modul
A PyGame-ben az objektumok és alakzatok rajzolása egyszerű folyamat. Használhatja a pygame.draw modult alakzatok, például téglalapok, körök, vonalak és egyebek rajzolásához.
Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik pip telepítve van a készülékére, majd ezzel a paranccsal telepítse a PyGame modul:
pip install pygame
Alapformák rajzolása
A pygame.draw A modul számos olyan funkciót biztosít, amelyek lehetővé teszik az alapvető alakzatok rajzolását. Minden függvény paraméterkészlettel határozza meg az alakzatot és annak pozícióját.
-
rect(): Ezzel a funkcióval téglalapot rajzolhat. Ez az egyik leggyakrabban használt forma a játékokban. Téglalapokkal platformokat, falakat és egyéb objektumokat hozhat létre. A függvény négy paramétert vesz igénybe: felület (a felület, amelyre a téglalapot rajzolni kell), szín, rect (egy Rect objektum) és szélesség (vonalvastagság).
pygame.draw.rect (felület, szín, egyenes, szélesség)
-
kör(): Rajzolj egy kört. Négy paramétert igényel: felület, szín, pozíció (a kör közepe) és sugár.
pygame.draw.circle (felület, szín, pozíció, sugár)
-
poligon(): Rajzolj egy sokszöget. Négy paramétert igényel: felület, szín, pontok (a sokszög alakját meghatározó pontok listája) és szélesség.
pygame.draw.polygon (felület, szín, pontok, szélesség)
-
vonal(): Rajzolj egy vonalat. Négy paraméter kell hozzá: felület, szín, start_poz és végpont.
pygame.draw.line (felület, szín, start_pos, end_pos)
A funkciók teljes listáját és paramétereit megtalálja a hivatalos oldalon PyGame dokumentáció a rajzoló modulhoz.
Összetett alakzatok rajzolása
Az alapvető alakzatok mellett a PyGame lehetővé teszi összetett alakzatok, például ívek, ellipszisek és álinák rajzolását is.
-
ív(): Ez a funkció ívet rajzol egy felületre. Az ív a kör egy része. Hat paramétert igényel: felület, szín, egyenes, kezdőszög, végszög és szélesség. Adja meg a szögeket fokban úgy, hogy a 0 fok jobbra mutat, és az óramutató járásával megegyező irányban nő. A szélesség paraméter határozza meg az ív vastagságát.
pygame.draw.arc (felület, szín, egyenes, start_angle, end_angle, szélesség)
-
ellipszis(): Rajzolj ellipszist egy felületre. Az ellipszis egy feszített kör. Négy paramétert igényel: felület, szín, egyenes és szélesség.
pygame.draw.ellipse (felület, szín, egyenes, szélesség)
-
aaline(): Egyetlen élsimított vonal rajzolására használható egy felületen. Az élsimítás egy olyan technika, amellyel egy alakzat széleit simítják, így természetesebbnek tűnik. Négy olyan paraméterre van szükség, amelyek tükrözik a vonal() függvény: felület, szín, kezdő_pozíció és vége_pozíció.
pygame.draw.aaline (felület, szín, start_pos, end_pos)
Beágyazott alakzatok létrehozása a PyGame-ben
A PyGame másik érdekes tulajdonsága, hogy képes alakzatokat rajzolni egy másik alakzatba. Ezt megteheti a PyGame alapvető alakrajzi funkcióinak kombinációjával.
Ha egy alakzatot egy másik alakzatba szeretne rajzolni, először megrajzolhatja a belső alakzatot, majd ráhúzhatja a külső alakzatot. A belső forma bármilyen alapforma lehet, például téglalap vagy kör.
Például egy körön belüli téglalap rajzolásához használhatja a pygame.draw.circle() funkcióval rajzolja meg a kört, majd használja a pygame.draw.rect() függvény segítségével rajzolja rá a téglalapot.
Az alábbi kódmintákat találja itt ezt a GitHub repót.
Íme egy példa kódrészlet, amely bemutatja, hogyan kell téglalapot rajzolni egy körön belül:
import pygame
# Inicializálja a pygame-et
pygame.init()# Hozzon létre egy ablakot
window = pygame.display.set_mode((800, 600))# Hozzon létre egy kört
circle_rect = pygame.draw.circle (ablak, (255, 255, 255), (400, 300), 100)# Hozzon létre egy felületet a téglalap számára
rectangle_surface = pygame. Felület((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))# Rajzolja meg a téglalapot a felületre
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))# Vágja fel a felületet a körre
window.blit (téglalap_felület, (375, 275))# Fő hurok
mígIgaz:
# Kilépés a játékból
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
pygame.quit()
kijárat()
# Frissítse a kijelzőt
pygame.display.update()
Ez egy körön belüli téglalap hatását hozza létre. Ezzel a technikával összetettebb formákat és játékelemeket hozhat létre több alakzat kombinálásával.
Képek rajza
A PyGame lehetővé teszi képek rajzolását is. Használhatja a pygame.image.load() függvény egy kép fájlból való betöltéséhez és a pygame.image.blit() funkciót rajzolja meg a képet a képernyőre.
A szintaxis a számára pygame.image.load() így néz ki:
pygame.image.load (fájlnév)
És itt van a szintaxis pygame.image.blit():
pygame.image.blit (kép, egyenes)
A képek betöltése és rajzolása mellett a PyGame számos más, képekkel kapcsolatos funkciót is biztosít. Ezek a funkciók lehetővé teszik a képek különféle módokon történő kezelését, például méretezést, elforgatást, átfordítást és körbevágást.
Speciális funkciók hozzáadása
A PyGame speciális funkciókat is biztosít az objektumok és alakzatok rajzolásához. Használhatja például a pygame.mouse.get_pos() függvényt az egér pozíciójának meghatározásához és a pygame.mouse.get_pressed() funkciót az egérgomb állapotának megjelenítéséhez. Ezekkel a funkciókkal létrehozhat egy kattintással rajzolható funkciót, amely lehetővé teszi alakzatok rajzolását az egér kattintásával.
import pygame
# Inicializálja a pygame-et
pygame.init()# Hozzon létre egy ablakot
window = pygame.display.set_mode((800, 600))# Fő hurok
mígIgaz:
# Állítsa be az egér pozícióját
mouse_position = pygame.mouse.get_pos()# Állítsa be az egérgomb állapotát
mouse_pressed = pygame.mouse.get_pressed()# Kilépés a játékból
számára esemény ban ben pygame.event.get():
ha event.type == pygame. KILÉPÉS:
pygame.quit()
kijárat()# Kör rajzolása az egér lenyomásakor
ha egér_lenyomva[0] == 1:
pygame.draw.circle (ablak, (255, 0, 0), egérpozíció, 20)
# Frissítse a kijelzőt
pygame.display.update()
Alább látható a kimenet:
Könnyen létrehozhat játék sprite-eket a PyGame-ben
A PyGame hatékony eszközkészletet is kínál a játék sprite-ok és objektumok egyszerű létrehozásához. A... val pygame.draw modul segítségével könnyedén létrehozhat sprite-okat, amelyeket felhasználhat a játékaiban. Könnyedén hozhat létre karaktereket, tárgyakat és egyéb játékelemeket.