Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

PyGame yra galinga ir populiari žaidimų kūrimo biblioteka, skirta Python. Jame pateikiamas įrankių ir funkcijų rinkinys, palengvinantis žaidimų ir kitų interaktyvių programų kūrimą. Viena iš naudingų PyGame savybių yra galimybė piešti objektus ir figūras.

Modulis pygame.draw

„PyGame“ objektų ir formų piešimas yra nesudėtingas procesas. Galite naudoti pygame.draw modulis, skirtas piešti tokias formas kaip stačiakampiai, apskritimai, linijos ir kt.

Prieš pradėdami įsitikinkite, kad turite pip įdiegtas jūsų įrenginyje, tada naudokite šią komandą, kad įdiegtumėte PyGame modulis:

pip įdiegti pygame

Pagrindinių figūrų piešimas

The pygame.draw modulyje yra keletas funkcijų, leidžiančių piešti pagrindines figūras. Kiekvienai funkcijai reikia parametrų rinkinio, kad apibrėžtų formą ir jos padėtį.

  • rect (): naudodami šią funkciją galite piešti stačiakampį. Tai viena iš dažniausiai žaidimuose naudojamų formų. Stačiakampiais galite kurti platformas, sienas ir kitus objektus. Funkcijai naudojami keturi parametrai: paviršius (paviršius, ant kurio reikia piešti stačiakampį), spalva, tiesioji (objektas tiesioji) ir plotis (linijos storis).
    instagram viewer
    pygame.draw.rect (paviršius, spalva, tiesioji, plotis)
  • ratas (): Nubrėžkite apskritimą. Tam reikalingi keturi parametrai: paviršius, spalva, poz (apskritimo centras) ir spindulys.
    pygame.draw.circle (paviršius, spalva, padėtis, spindulys)
  • poligonas(): Nubrėžkite daugiakampį. Tam reikalingi keturi parametrai: paviršius, spalva, taškai (taškų, apibrėžiančių daugiakampio formą, sąrašas) ir plotis.
    pygame.draw.polygon (paviršius, spalva, taškai, plotis) 
  • eilutė (): nubrėžkite liniją. Tam reikalingi keturi parametrai: paviršius, spalva, start_pos ir end_pos.
    pygame.draw.line (paviršius, spalva, start_pos, end_pos) 

Visą funkcijų sąrašą ir jų parametrus galite rasti oficialioje svetainėje PyGame piešimo modulio dokumentacija.

Sudėtingų formų piešimas

Be pagrindinių formų, PyGame taip pat leidžia piešti sudėtingas formas, pvz., lankus, elipses ir alines.

  • lankas (): Ši funkcija nubrėžia lanką ant paviršiaus. Lankas yra apskritimo dalis. Tam reikia šešių parametrų: paviršiaus, spalvos, tiesiosios, pradžios_kampo, pabaigos_kampo ir pločio. Nurodykite kampus laipsniais, 0 laipsnių rodydami į dešinę ir didindami pagal laikrodžio rodyklę. Parametras plotis nurodo lanko storį.
    pygame.draw.arc (paviršius, spalva, tiesioji, pradžios_kampas, pabaigos_kampas, plotis)
  • elipsė (): Nubrėžkite elipsę ant paviršiaus. Elipsė yra ištemptas apskritimas. Tam reikia keturių parametrų: paviršiaus, spalvos, tiesiosios ir pločio.
    pygame.draw.ellipsė (paviršius, spalva, tiesioji, plotis)
  • aaline (): naudokite, kad ant paviršiaus nubrėžtumėte vieną anti-aliadinę liniją. Anti-aliasing yra technika, naudojama formos kraštams išlyginti, kad ji atrodytų natūraliau. Reikia keturių parametrų, kurie atspindi eilutė () funkcija: paviršius, spalva, pradžios_pozicija ir pabaigos_pozicija.
    pygame.draw.aaline (paviršius, spalva, start_pos, end_pos) 

Įdėtų formų kūrimas „PyGame“.

Kita įdomi PyGame savybė yra galimybė piešti figūras kitos formos viduje. Tai galite padaryti naudodami pagrindinių PyGame formos piešimo funkcijų derinį.

Norėdami nupiešti figūrą kitos figūros viduje, pirmiausia galite nupiešti vidinę formą, o tada ant jos nupiešti išorinę figūrą. Vidinė forma gali būti bet kokia pagrindinė forma, pavyzdžiui, stačiakampis arba apskritimas.

Pavyzdžiui, norėdami nubrėžti stačiakampį apskritimo viduje, galite naudoti pygame.draw.circle() funkcija nubrėžti apskritimą, tada naudokite pygame.draw.rect() funkcija nupiešti stačiakampį ant jo.

Šiuos kodo pavyzdžius galite rasti šis „GitHub“ atpirkimas.

Štai kodo fragmento pavyzdys, rodantis, kaip nubrėžti stačiakampį apskritimo viduje:

importuoti pygame

# Inicijuoti pygame
pygame.init()

# Sukurkite langą
langas = pygame.display.set_mode((800, 600))

# Sukurkite ratą
circle_rect = pygame.draw.circle (langas, (255, 255, 255), (400, 300), 100)

# Sukurkite stačiakampio paviršių
rectangle_surface = pygame. Paviršius((50, 50))
rectangle_surface.set_colorkey((0, 0, 0))

# Nupieškite stačiakampį ant paviršiaus
pygame.draw.rect (rectangle_surface, (255, 0, 0), (0, 0, 50, 50))

# Nupjaukite paviršių ant apskritimo
window.blit (stačiakampis_paviršius, (375, 275))

# Pagrindinė kilpa
kolTiesa:
# Baigti žaidimą
dėl įvykis in pygame.event.get():
jeigu event.type == pygame. UŽDARYTI:
pygame.quit()
išeiti ()

# Atnaujinkite ekraną
pygame.display.update()

Taip sukuriamas stačiakampio efektas apskritimo viduje. Galite naudoti šią techniką kurdami sudėtingesnes figūras ir žaidimo elementus, derindami kelias formas.

Vaizdų piešimas

PyGame taip pat leidžia piešti vaizdus. Galite naudoti pygame.image.load() funkcija įkelti vaizdą iš failo ir pygame.image.blit() funkcija nupieškite vaizdą ekrane.

Sintaksė skirta pygame.image.load() atrodo taip:

pygame.image.load (failo pavadinimas) 

Ir čia yra sintaksė pygame.image.blit():

pygame.image.blit (vaizdas, tiesioji) 

Be vaizdų įkėlimo ir piešimo, PyGame taip pat teikia keletą kitų su vaizdais susijusių funkcijų. Šios funkcijos leidžia manipuliuoti vaizdais įvairiais būdais, pvz., keisti mastelį, pasukti, apversti ir apkarpyti.

Papildomų funkcijų pridėjimas

„PyGame“ taip pat teikia keletą pažangių objektų ir formų piešimo funkcijų. Pavyzdžiui, galite naudoti pygame.mouse.get_pos() funkcija nustatyti pelės padėtį ir pygame.mouse.get_pressed() funkcija gauti pelės mygtuko būseną. Naudodami šias funkcijas galite sukurti spustelėjus ir piešti funkciją, kuri leidžia piešti figūras spustelėjus pelę.

importuoti pygame 

# Inicijuoti pygame
pygame.init()

# Sukurkite langą
langas = pygame.display.set_mode((800, 600))

# Pagrindinė kilpa
kolTiesa:
# Nustatykite pelės padėtį
pelės_pozicija = pygame.mouse.get_pos()

# Gaukite pelės mygtuko būseną
mouse_pressed = pygame.mouse.get_pressed()

# Baigti žaidimą
dėl įvykis in pygame.event.get():
jeigu event.type == pygame. UŽDARYTI:
pygame.quit()
išeiti ()

# Apskritimo piešimas paspaudus pelę
jeigu pelė_paspausta[0] == 1:
pygame.draw.circle (langas, (255, 0, 0), pelės_pozicija, 20)

# Atnaujinkite ekraną
pygame.display.update()

Žemiau yra išvestis:

Lengvai kurkite žaidimų sprites „PyGame“.

„PyGame“ taip pat suteikia galingą įrankių rinkinį, leidžiantį lengvai kurti žaidimų spritus ir objektus. Su pygame.draw modulį, galite lengvai sukurti sprite, kuriuos galėsite naudoti savo žaidimuose. Galite lengvai kurti personažus, objektus ir kitus žaidimo elementus.