Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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()
    instagram viewer
    : 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.