Ova knjižnica igara na Pythonu puna je značajki, uključujući neke jednostavne alate koje možete koristiti za stvaranje glatkog, paralaksnog pomicanja.
Pomičuće se pozadine mogu uvelike poboljšati vizualnu privlačnost i dubinu igre. Mogu stvoriti iluziju kretanja, dajući igri dinamičan i impresivan dojam. Možete implementirati pomične pozadine u samo nekoliko jednostavnih koraka koristeći Pygame.
Pygame je popularna Python biblioteka koju možete koristiti za razvoj igara. Dodavanje klizajućih pozadina u vaše Pygame projekte oživjet će ih i omogućiti igračima zanimljivije iskustvo.
Stvorite jednostavnu igru
Da biste razumjeli koncept pomicanja pozadine u Pygameu, počnite stvaranjem jednostavne igre u kojoj se igrač može kretati lijevo i desno. Također možete uključiti dvije platforme, predstavljene pravokutnicima, koje će poslužiti kao okruženje za igru. Stvorite novu datoteku pod nazivom jednostavna igra.py.
Kôd korišten u ovom članku dostupan je u ovom GitHub spremište i besplatan je za korištenje pod MIT licencom.
Prvo uvezite pygame modul i inicijalizirajte ga. Zatim definirajte igračevu početnu poziciju i brzinu kretanja. Stvorite platforme pomoću pygame. prav objekte i definirati njihove položaje i dimenzije.
Unutar petlje igre, upravljajte događajima kao što je napuštanje igre. Također se možete nositi kretanje igrača na temelju dodira ili unosa s tipkovnice.
Evo rezultata jednostavne igre:
Stvorite različite slojeve
Da biste postigli efekt pomicanja, možete stvoriti više slojeva pozadine s različitim bojama. Svaki će se sloj kretati različitom brzinom, stvarajući efekt paralakse. Ovaj efekt daje iluziju dubine i pojačava osjećaj kretanja u igri.
Definirajte dva pozadinska sloja, od kojih svaki pokriva cijeli prozor igre, koristeći pygame. Pravokutni objekti. Također definirajte boje svakog sloja u boje_pozadine popis. The pozadinske_brzine popis određuje brzinu kojom će se kretati svaki sloj.
# Dodajte ovaj kod ispod prethodnog odjeljka
pozadinski slojevi = [
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona),
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona)
]
boje_pozadine = [(30, 30, 30), (60, 60, 60)]
pozadinske_brzine = [0.1, 1.0]
Da biste stvorili efekt pomicanja pozadine, trebate ažurirati položaje pozadinskih slojeva u petlji igre. Svaki ćete sloj pomicati vodoravno na temelju dodijeljene brzine.
Stvorite novu datoteku pod nazivom scrolling-bg.py i dodajte kod sa sljedećim ažuriranjima:
za ja u raspon (len (pozadinski slojevi)):
pozadinski slojevi[i].x -= pozadinske_brzine[i]ako pozadinski slojevi[i].x <= -screen_width:
pozadinski slojevi[i].x = 0
pygame.draw.rect (zaslon, boje_pozadine[i], slojevi_pozadine[i])
Iterirajte kroz svaki pozadinski sloj. Oduzmite odgovarajuću brzinu od x-koordinate sloja, uzrokujući njegovo pomicanje ulijevo. Ako sloj dosegne lijevi rub zaslona, vratite njegov položaj na desno, stvarajući efekt kontinuiranog pomicanja.
Konačno, nacrtajte svaki pravokutni pozadinski sloj na zaslonu pomoću pygame.draw.rect() i prolaz odgovarajuće boje i pygame. Rect objekt.
Dodavanje efekta paralakse tijekom kretanja
Kako biste poboljšali efekt paralakse, možete modificirati kretanje platforme tako da se događa kada se igrač kreće. To će stvoriti snažan osjećaj dubine i dinamičnog kretanja. Stvorite novu datoteku pod nazivom paralaksa.py i dodajte kod sa sljedećim ažuriranjima:
# Definirajte položaje i brzine platforme
rect1 = pygame. Pravo(50, visina_zaslona - 100, 200, 10)
rect2 = pygame. Rect (screen_width - 250, visina_zaslona - 200, 200, 10)platforme = [
{"pravo": pravo1, "ubrzati": 3},
{"pravo": pravo2, "ubrzati": 1}
]# Dodajte ovaj kod unutar petlje igre
# Kretanje igrača
tipke = pygame.key.get_pressed()ako ključevi[pygame. K_LEFT] i igrač_x > 0:
igrač_x -= brzina_igračaza platforma u platforme:
platforma["pravo"].x -= platforma["ubrzati"]ako ključevi[pygame. K_DESNO] i player_x < screen_width:
igrač_x += brzina_igračaza platforma u platforme:
platforma["pravo"].x += platforma["ubrzati"]
za platforma u platforme:
pygame.draw.rect (zaslon, (0, 255, 0), platforma["pravo"])
Predstavite platforme kao rječnike koji sadrže i pravokutni objekt (rect) i brzinu kojom bi se platforma trebala kretati (brzina). Platforme se ažuriraju u petlji igre na temelju kretanja igrača.
Implementacijom ove izmjene, efekt pomicanja bit će aktivan samo kada se igrač aktivno kreće, dodatno pojačavajući iluziju dubine i kretanja.
Uključujući dodatne značajke
Možete implementirati nekoliko dodatnih značajki kako biste poboljšali klizne pozadine u svojoj igri. Evo nekoliko primjera.
Nasumično odredite pozadinske boje
Da biste dodali varijacije pozadinskim slojevima, možete nasumično rasporediti njihove boje. To možete učiniti izmjenom boje_pozadine popis:
uvoz slučajan
# Dodajte ovaj kod prije petlje igre
boje_pozadine = [
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
]
Dodajte više pozadinskih slojeva
Možete eksperimentirati s dodavanjem više pozadinskih slojeva kako biste stvorili bogatiji efekt paralakse. Jednostavno definirajte dodatne pygame. prav objekti, boje i brzine:
# Dodajte ovaj kod prije petlje igre
pozadinski slojevi = [
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona),
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona),
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona),
pygame. Pravo(0, 0, širina_zaslona, visina_zaslona)
]boje_pozadine = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
pozadinske_brzine = [1, 2, 3, 4]
Koristite slike za pozadine
Umjesto punih boja, možete koristiti slikovne datoteke kao pozadinu. Pygame pruža funkcije za učitavanje i renderiranje slika.
Učitajte slikovne datoteke pozadina_0.png, pozadina_1.png, i pozadina_2.png korištenjem pygame.image.load(). Upotrijebite metodu convert() za poboljšanje performansi i skaliranje slika kako bi odgovarale dimenzijama zaslona pygame.transform.scale().
# Dodajte ovaj kod prije petlje igre
pozadinske_slike = [
pygame.image.load("pozadina_0.png").Pretvoriti(),
pygame.image.load("pozadina_1.png").Pretvoriti(),
pygame.image.load("pozadina_2.png").Pretvoriti()
]pozadinske_brzine = [1, 2, 3]
za ja u raspon (len (pozadinske_slike)):
veličina = (širina_zaslona, visina_zaslona)
pozadinske_slike[i] = pygame.transform.scale (pozadinske_slike[i], veličina)
Konačno, ažurirajte petlju u kojoj crtate pozadinske slojeve da biste koristili slike:
# Ažurirajte ovaj kod unutar petlje igre
za ja u raspon (len (pozadinski slojevi)):
pozadinski slojevi[i].x -= pozadinske_brzine[i]ako pozadinski slojevi[i].x <= -screen_width:
pozadinski slojevi[i].x = 0
screen.blit (pozadinske_slike[i], pozadinski slojevi[i])
Evo nekoliko najboljih praksi koje treba uzeti u obzir pri implementaciji pomičnih pozadina u vašim Pygame projektima.
Optimizirajte izvedbu
Pomičuće se pozadine uključuju kontinuirano iscrtavanje i ažuriranje. Kako biste osigurali glatko igranje, razmislite o optimizaciji svog koda i smanjenju nepotrebnih izračuna.
Eksperimentirajte s brzinama slojeva
Podešavanje brzina pozadinskih slojeva može stvoriti različite efekte. Poigrajte se s različitim vrijednostima kako biste pronašli pravu ravnotežu i postigli željeni vizualni dojam.
Testirajte na različitim veličinama zaslona
Provjerite rade li vaše klizne pozadine dobro na različitim razlučivostima zaslona. Razmislite o implementaciji dinamičkog skaliranja ili korištenju različitih pozadinskih slika za različite omjere slike.
Koristite odgovarajuće formate slika
Ako odlučite koristiti slike za svoje pozadine, odaberite odgovarajući format slike (npr. PNG, JPEG) kako biste uravnotežili veličinu datoteke i kvalitetu slike. Također možete smanjiti vrijeme učitavanja komprimiranjem i optimiziranjem svojih slika.
Razmotrite korištenje memorije
Ako planirate koristiti mnogo slika visoke razlučivosti za svoje pozadine, vodite računa o zahtjevima za memoriju. Velike slike mogu zauzeti značajnu količinu memorije, potencijalno utječući na performanse i brzinu vaše igre.
Uključivanjem pomičnih pozadina možete stvoriti različita okruženja, poput pokretnih krajolika, futurističkih gradskih pejzaža ili podvodnih svjetova. Efekt paralakse dodaje dinamičan dodir, čineći svijet igre živim i interaktivnim.
Ne zaboravite eksperimentirati, ponavljati i istraživati kreativne mogućnosti s pomičnim pozadinama kako bi vaše igre bile zabavnije i zadivljujuće za igrače.