PyGame je moćna i popularna biblioteka za razvoj igara za Python. Omogućuje skup alata i funkcija koje olakšavaju stvaranje igara i drugih interaktivnih aplikacija. Jedna korisna značajka PyGamea je njegova sposobnost crtanja objekata i oblika.
Modul pygame.draw
U PyGameu je crtanje objekata i oblika jednostavan proces. Možete koristiti pygame.crtati modul za crtanje oblika kao što su pravokutnici, krugovi, linije i još mnogo toga.
Prije početka provjerite imate li pip instaliran na vašem uređaju, zatim pomoću ove naredbe instalirajte PyGame modul:
pip instaliraj pygame
Crtanje osnovnih oblika
The pygame.crtati modul nudi nekoliko funkcija koje vam omogućuju crtanje osnovnih oblika. Svaka funkcija uzima skup parametara za definiranje oblika i njegovog položaja.
-
rect(): Pomoću ove funkcije možete nacrtati pravokutnik. Ovo je jedan od najčešće korištenih oblika u igrama. Možete stvoriti platforme, zidove i druge objekte s pravokutnicima. Funkcija uzima četiri parametra: površinu (površinu na kojoj se crta pravokutnik), boju, rect (Rect objekt) i širinu (debljina linije).
pygame.draw.rect (površina, boja, pravokut, širina)
-
krug(): Nacrtajte krug. Potrebna su četiri parametra: površina, boja, položaj (središte kruga) i polumjer.
pygame.draw.circle (površina, boja, položaj, polumjer)
-
poligon(): Nacrtaj poligon. Potrebna su četiri parametra: površina, boja, točke (popis točaka koje definiraju oblik poligona) i širina.
pygame.draw.polygon (površina, boja, točke, širina)
-
crta(): Nacrtaj liniju. Potrebna su četiri parametra: površina, boja, start_pos i end_pos.
pygame.draw.line (površina, boja, start_pos, end_pos)
Potpuni popis funkcija i njihovih parametara možete pronaći na službenoj stranici PyGame dokumentacija za modul crtanja.
Crtanje složenih oblika
Osim osnovnih oblika, PyGame također omogućuje crtanje složenih oblika poput lukova, elipsa i aalina.
-
luk(): Ova funkcija crta luk na površini. Luk je dio kruga. Potrebno je šest parametara: površina, boja, pravokut, početni_kut, krajnji_kut i širina. Odredite kutove u stupnjevima, pri čemu 0 stupnjeva pokazuje udesno i povećava se u smjeru kazaljke na satu. Parametar širine određuje debljinu luka.
pygame.draw.arc (površina, boja, pravokut, početni_kut, krajnji_kut, širina)
-
elipsa(): Nacrtajte elipsu na površini. Elipsa je rastegnuta kružnica. Potrebna su četiri parametra: površina, boja, pravokut i širina.
pygame.draw.ellipse (površina, boja, pravokut, širina)
-
aaline(): Koristite za crtanje jedne anti-aliased linije na površini. Anti-aliasing je tehnika koja se koristi za glačanje rubova oblika, tako da izgleda prirodnije. Potrebna su četiri parametra koji odražavaju crta() funkcija: površina, boja, start_pos i end_pos.
pygame.draw.aaline (površina, boja, start_pos, end_pos)
Stvaranje ugniježđenih oblika u PyGameu
Još jedna zanimljiva značajka PyGamea je mogućnost crtanja oblika unutar drugog oblika. To možete učiniti pomoću kombinacije osnovnih funkcija za crtanje oblika u PyGameu.
Da biste nacrtali oblik unutar drugog oblika, prvo možete nacrtati unutarnji oblik, a zatim nacrtati vanjski oblik iznad njega. Unutarnji oblik može biti bilo koji osnovni oblik, poput pravokutnika ili kruga.
Na primjer, da biste nacrtali pravokutnik unutar kruga, možete koristiti pygame.draw.circle() funkciju za crtanje kruga, a zatim upotrijebite pygame.draw.rect() funkciju za crtanje pravokutnika na vrhu.
Sljedeće uzorke koda možete pronaći u ovaj GitHub repo.
Evo primjera isječka koda koji pokazuje kako nacrtati pravokutnik unutar kruga:
uvoz pygame
# Inicijalizirajte pygame
pygame.init()# Napravite prozor
prozor = pygame.display.set_mode((800, 600))# Napravite krug
circle_rect = pygame.draw.circle (prozor, (255, 255, 255), (400, 300), 100)# Napravite površinu za pravokutnik
površina_pravokutnika = pygame. Površinski((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))# Nacrtajte pravokutnik na površini
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))# Nanesite površinu na krug
window.blit (rectangle_surface, (375, 275))# Glavna petlja
dokPravi:
# Napuštanje igre
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
pygame.quit()
Izlaz()
# Ažurirajte zaslon
pygame.display.update()
To stvara učinak pravokutnika unutar kruga. Ovu tehniku možete koristiti za stvaranje složenijih oblika i elemenata igre kombiniranjem više oblika.
Crtanje slika
PyGame vam također omogućuje crtanje slika. Možete koristiti pygame.image.load() funkcija za učitavanje slike iz datoteke i pygame.image.blit() funkcija za nacrtajte sliku na ekranu.
Sintaksa za pygame.image.load() izgleda ovako:
pygame.image.load (naziv datoteke)
A evo i sintakse za pygame.image.blit():
pygame.image.blit (slika, rect)
Osim učitavanja i crtanja slika, PyGame također nudi nekoliko drugih funkcija povezanih sa slikama. Ove vam funkcije omogućuju manipuliranje slikama na razne načine, kao što su skaliranje, rotiranje, okretanje i obrezivanje.
Dodavanje naprednih značajki
PyGame također nudi neke napredne značajke za crtanje objekata i oblika. Na primjer, možete koristiti pygame.mouse.get_pos() funkcija za dobivanje položaja miša i pygame.mouse.get_pressed() funkcija za dobivanje stanja gumba miša. Pomoću ovih funkcija možete stvoriti značajku klikni za crtanje koja vam omogućuje crtanje oblika klikom miša.
uvoz pygame
# Inicijalizirajte pygame
pygame.init()# Napravite prozor
prozor = pygame.display.set_mode((800, 600))# Glavna petlja
dokPravi:
# Zauzmite poziciju miša
položaj_miša = pygame.mouse.get_pos()# Dobijte stanje tipke miša
mouse_pressed = pygame.mouse.get_pressed()# Napuštanje igre
za događaj u pygame.event.get():
ako event.type == pygame. PRESTATI:
pygame.quit()
Izlaz()# Crtanje kruga kada se pritisne miš
ako pritisnut_mišom[0] == 1:
pygame.draw.circle (prozor, (255, 0, 0), položaj_miša, 20)
# Ažurirajte zaslon
pygame.display.update()
Ispod je izlaz:
Jednostavno kreirajte sprite igre u PyGameu
PyGame također nudi snažan skup alata za jednostavno stvaranje spriteova i objekata za igru. s pygame.crtati modula, možete jednostavno stvoriti spriteove koje možete koristiti u svojim igrama. S lakoćom možete stvarati likove, objekte i druge elemente igre.