Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

PyGame on Pythoni jaoks võimas ja populaarne mänguarendusteek. See pakub tööriistade ja funktsioonide komplekti, mis hõlbustavad mängude ja muude interaktiivsete rakenduste loomist. Üks PyGame'i kasulik funktsioon on selle võime joonistada objekte ja kujundeid.

Moodul pygame.draw

PyGame'is on objektide ja kujundite joonistamine lihtne protsess. Võite kasutada pygame.draw moodul kujundite, näiteks ristkülikute, ringide, joonte ja muu joonistamiseks.

Enne alustamist veenduge, et teil on pip teie seadmesse installitud, seejärel kasutage seda käsku installimiseks PyGame moodul:

pip install pygame

Põhikujundite joonistamine

The pygame.draw moodul pakub mitmeid funktsioone, mis võimaldavad joonistada põhikujundeid. Iga funktsioon võtab kuju ja selle asukoha määratlemiseks parameetrite komplekti.

  • rect(): Selle funktsiooni abil saate joonistada ristküliku. See on üks mängudes kõige sagedamini kasutatavaid kujundeid. Saate luua platvorme, seinu ja muid ristkülikutega objekte. Funktsioonil on neli parameetrit: pind (pind, millele ristkülik joonistada), värv, sirge (rektiline objekt) ja laius (joone paksus).
    instagram viewer
    pygame.draw.rect (pind, värv, sirge, laius)
  • ring(): joonistage ring. See võtab neli parameetrit: pind, värv, pos (ringi keskpunkt) ja raadius.
    pygame.draw.circle (pind, värv, asend, raadius)
  • hulknurk(): joonistage hulknurk. Selleks on vaja nelja parameetrit: pind, värv, punktid (punktide loend, mis määravad hulknurga kuju) ja laius.
    pygame.draw.polygon (pind, värv, punktid, laius) 
  • rida (): Joont tõmbama. See võtab neli parameetrit: pind, värv, algus_positsioon ja lõpp_positsioon.
    pygame.draw.line (pind, värv, algus_positsioon, lõpp_positsioon) 

Funktsioonide ja nende parameetrite täieliku loendi leiate ametlikult PyGame'i dokumentatsioon joonistusmooduli jaoks.

Keeruliste kujundite joonistamine

Lisaks põhikujudele võimaldab PyGame joonistada ka keerulisi kujundeid, nagu kaared, ellipsid ja aaliinid.

  • arc(): see funktsioon joonistab pinnale kaare. Kaar on ringi osa. Selleks on vaja kuut parameetrit: pind, värv, sirge, algusnurk, lõppnurk ja laius. Määrake nurgad kraadides, kus 0 kraadi näitab paremale ja suureneb päripäeva. Laiuse parameeter määrab kaare paksuse.
    pygame.draw.arc (pind, värv, sirge, algusnurk, lõppnurk, laius)
  • ellips (): joonistage pinnale ellips. Ellips on venitatud ring. See võtab neli parameetrit: pind, värv, sirge ja laius.
    pygame.draw.ellipse (pind, värv, sirge, laius)
  • aaline(): kasutage pinnale ühe antialiase joone joonistamiseks. Antialiasing on tehnika, mida kasutatakse kujundi servade silumiseks, et see näeks loomulikum välja. Selleks on vaja nelja parameetrit, mis peegeldavad rida () funktsioon: pind, värv, algus_positsioon ja lõpp_positsioon.
    pygame.draw.aaline (pind, värv, algus_positsioon, lõpp_positsioon) 

Pesastatud kujundite loomine PyGame'is

Veel üks PyGame'i huvitav omadus on võimalus joonistada kujundeid teise kujundi sisse. Seda saate teha PyGame'i põhiliste kujundi joonistamise funktsioonide kombinatsiooni abil.

Kujundi joonistamiseks teise kujundi sisse saate kõigepealt joonistada sisemise kujundi ja seejärel selle peale välimise kujundi. Sisemine kuju võib olla mis tahes põhikuju, näiteks ristkülik või ring.

Näiteks ringi sisse ristküliku joonistamiseks võite kasutada pygame.draw.circle() funktsiooni ringi joonistamiseks ja seejärel kasutage nuppu pygame.draw.rect() funktsioon ristküliku selle peale joonistamiseks.

Järgmised koodinäidised leiate siit see GitHubi repo.

Siin on koodilõigu näide, mis näitab, kuidas ringi sees ristkülikut joonistada.

importida pygame

# Initsialiseerige pygame
pygame.init()

# Loo aken
window = pygame.display.set_mode((800, 600))

# Looge suhtlusring
circle_rect = pygame.draw.circle (aken, (255, 255, 255), (400, 300), 100)

# Loo ristküliku jaoks pind
rectangle_surface = pygame. Surface((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Joonistage pinnale ristkülik
pygame.draw.rect (ristküliku_pind, (255, 0, 0), (0, 0, 50, 50))

# Lõigake pind ringile
window.blit (ristküliku_pind, (375, 275))

# Põhisilmus
samal ajalTõsi:
# Mängust väljumine
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
pygame.quit()
exit ()

# Värskendage ekraani
pygame.display.update()

See loob ringi sees ristküliku efekti. Seda tehnikat saate kasutada keerukamate kujundite ja mänguelementide loomiseks, kombineerides mitut kujundit.

Piltide joonistamine

PyGame võimaldab ka pilte joonistada. Võite kasutada pygame.image.load() funktsioon pildi failist laadimiseks ja pygame.image.blit() funktsiooniks joonistage pilt ekraanile.

Süntaks jaoks pygame.image.load() näeb välja selline:

pygame.image.load (failinimi) 

Ja siin on süntaks pygame.image.blit():

pygame.image.blit (pilt, rekt) 

Lisaks piltide laadimisele ja joonistamisele pakub PyGame ka mitmeid muid piltidega seotud funktsioone. Need funktsioonid võimaldavad teil pilte mitmel viisil töödelda, näiteks skaleerida, pöörata, ümber pöörata ja kärpida.

Täiustatud funktsioonide lisamine

PyGame pakub ka mõningaid täiustatud funktsioone objektide ja kujundite joonistamiseks. Näiteks võite kasutada pygame.mouse.get_pos() funktsioon hiire asukoha määramiseks ja pygame.mouse.get_pressed() funktsioon hiirenupu oleku kuvamiseks. Nende funktsioonide abil saate luua klõpsa-joonistamiseks funktsiooni, mis võimaldab joonistada kujundeid hiireklõpsuga.

importida pygame 

# Initsialiseerige pygame
pygame.init()

# Loo aken
window = pygame.display.set_mode((800, 600))

# Põhisilmus
samal ajalTõsi:
# Määrake hiire asend
hiire_positsioon = pygame.mouse.get_pos()

# Hangi hiirenupu olek
mouse_pressed = pygame.mouse.get_pressed()

# Mängust väljumine
jaoks sündmus sisse pygame.event.get():
kui event.type == mängumäng. VÄLJA:
pygame.quit()
exit ()

# Ringi joonistamine, kui hiirt vajutada
kui hiire_vajutatud[0] == 1:
pygame.draw.circle (aken, (255, 0, 0), hiire_positsioon, 20)

# Värskendage ekraani
pygame.display.update()

Allpool on väljund:

Looge PyGame'is hõlpsalt mängusprite

PyGame pakub ka võimsaid tööriistu, mille abil saate hõlpsalt luua mängu spraite ja objekte. Koos pygame.draw mooduli abil saate hõlpsasti luua spraite, mida saate oma mängudes kasutada. Saate hõlpsasti luua tegelasi, objekte ja muid mänguelemente.