Ta knjižnica iger Python je polna funkcij, vključno z nekaj preprostimi orodji, ki jih lahko uporabite za ustvarjanje gladkega drsenja s paralakso.
Drseča ozadja lahko močno izboljšajo vizualno privlačnost in globino igre. Lahko ustvarijo iluzijo gibanja, kar daje igri dinamičen in poglobljen občutek. Drseča ozadja lahko implementirate v le nekaj preprostih korakih z uporabo Pygame.
Pygame je priljubljena knjižnica Python, ki jo lahko uporabite za razvoj iger. Če svojim projektom Pygame dodate drsna ozadja, jih boste oživili in igralcem zagotovili bolj privlačno izkušnjo.
Ustvari preprosto igro
Če želite razumeti koncept drsnih ozadij v Pygame, začnite z ustvarjanjem preproste igre, kjer se lahko igralec premika levo in desno. Vključite lahko tudi dve platformi, predstavljeni s pravokotniki, ki služita kot okolje igre. Ustvari novo datoteko z imenom simple-game.py.
Koda, uporabljena v tem članku, je na voljo tukaj Repozitorij GitHub in je brezplačen za uporabo pod licenco MIT.
Najprej uvozite modul pygame in ga inicializirajte. Nato določite igralčev začetni položaj in hitrost gibanja. Ustvarite platforme z uporabo
pygame. Rect predmetov ter določi njihove položaje in dimenzije.Znotraj igralne zanke obravnavajte dogodke, kot je izstop iz igre. Lahko tudi ročaj premikanje igralca na podlagi vnosov na dotik ali tipkovnico.
Tukaj je rezultat preproste igre:
Ustvarite različne plasti
Če želite doseči učinek drsenja, lahko ustvarite več plasti ozadij z različnimi barvami. Vsaka plast se bo premikala z drugačno hitrostjo, kar bo ustvarilo učinek paralakse. Ta učinek daje iluzijo globine in poveča občutek gibanja v igri.
Z uporabo pygame definirajte dve plasti ozadja, od katerih vsaka pokriva celotno okno igre. Pravokotni predmeti. Določite tudi barve vsake plasti v barve_ozadje seznam. The hitrost_ozadja seznam določa hitrost, s katero se bo premikala posamezna plast.
# Dodajte to kodo pod prejšnji razdelek
plasti_ozadja = [
pygame. Rect(0, 0, širina_zaslona, višina_zaslona),
pygame. Rect(0, 0, širina_zaslona, višina_zaslona)
]
barve_ozadje = [(30, 30, 30), (60, 60, 60)]
hitrost_ozadja = [0.1, 1.0]
Če želite ustvariti drseči učinek ozadja, morate posodobiti položaje slojev ozadja v zanki igre. Vsako plast boste premaknili vodoravno glede na dodeljeno hitrost.
Ustvari novo datoteko z imenom scrolling-bg.py in dodajte kodo s spodnjimi posodobitvami:
za jaz v obseg (len (plasti_ozadja)):
ozadje_plasti[i].x -= ozadje_hitrost[i]če ozadje_plasti[i].x <= -screen_width:
plasti_ozadja[i].x = 0
pygame.draw.rect (zaslon, barve_ozadje[i], sloji_ozadje[i])
Ponavljajte vsako plast ozadja. Odštejte ustrezno hitrost od x-koordinate plasti, kar povzroči, da se premakne v levo. Če sloj doseže levi rob zaslona, ponastavite njegov položaj na desno in ustvarite učinek neprekinjenega drsenja.
končno, narišite vsako pravokotno plast ozadja na zaslonu z uporabo pygame.draw.rect() in posredovanje ustrezne barve in pygame. Rect objekt.
Dodajanje učinka paralakse med premikanjem
Če želite povečati učinek paralakse, lahko spremenite gibanje platforme, da se pojavi, ko se igralec premika. To bo ustvarilo močan občutek globine in dinamičnega gibanja. Ustvari novo datoteko z imenom paralaksa.py in dodajte kodo s spodnjimi posodobitvami:
# Določite položaje in hitrosti platforme
rect1 = pygame. Rect(50, višina_zaslona - 100, 200, 10)
rect2 = pygame. Rect (screen_width - 250, višina_zaslona - 200, 200, 10)platforme = [
{"rect": rect1, "hitrost": 3},
{"rect": rect2, "hitrost": 1}
]# Dodajte to kodo v zanko igre
# Gibanje igralca
tipke = pygame.key.get_pressed()če ključi [pygame. K_LEFT] in igralec_x > 0:
igralec_x -= hitrost_igralcaza platforma v platforme:
platforma ["rect"].x -= platforma["hitrost"]če ključi [pygame. K_DESNO] in igralec_x < širina_zaslona:
igralec_x += hitrost_igralcaza platforma v platforme:
platforma ["rect"].x += platforma["hitrost"]
za platforma v platforme:
pygame.draw.rect (zaslon, (0, 255, 0), platforma["rect"])
Platforme predstavite kot slovarje, ki vsebujejo pravokotni objekt (rect) in hitrost, s katero naj se platforma premika (hitrost). Platforme se posodabljajo v igralni zanki glede na igralčevo gibanje.
Z uvedbo te spremembe bo učinek drsenja aktiven le, ko se igralec aktivno premika, kar še poveča iluzijo globine in gibanja.
Vključno z dodatnimi funkcijami
Uporabite lahko več dodatnih funkcij za izboljšanje drsečih ozadij v vaši igri. Tukaj je nekaj primerov.
Naključno določite barve ozadja
Če želite slojem ozadja dodati različico, lahko naključno določite njihove barve. To lahko storite tako, da spremenite barve_ozadje seznam:
uvoz naključen
# Dodajte to kodo pred zanko igre
barve_ozadje = [
(naključno.randint(0, 255), naključno.randint(0, 255), naključno.randint(0, 255)),
(naključno.randint(0, 255), naključno.randint(0, 255), naključno.randint(0, 255)),
(naključno.randint(0, 255), naključno.randint(0, 255), naključno.randint(0, 255))
]
Dodajte več plasti ozadja
Lahko eksperimentirate z dodajanjem več plasti ozadja, da ustvarite bogatejši učinek paralakse. Preprosto določite dodatne pygame. Rect predmeti, barve in hitrosti:
# Dodajte to kodo pred zanko igre
plasti_ozadja = [
pygame. Rect(0, 0, širina_zaslona, višina_zaslona),
pygame. Rect(0, 0, širina_zaslona, višina_zaslona),
pygame. Rect(0, 0, širina_zaslona, višina_zaslona),
pygame. Rect(0, 0, širina_zaslona, višina_zaslona)
]barve_ozadje = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
hitrost_ozadja = [1, 2, 3, 4]
Uporabite slike za ozadja
Namesto trdnih barv lahko kot ozadje uporabite slikovne datoteke. Pygame ponuja funkcije za nalaganje in upodabljanje slik.
Naložite slikovne datoteke ozadje_0.png, ozadje_1.png, in ozadje_2.png uporabo pygame.image.load(). Uporabite metodo convert(), da izboljšate zmogljivost in prilagodite slike, da se ujemajo z dimenzijami zaslona pygame.transform.scale().
# Dodajte to kodo pred zanko igre
slike_ozadje = [
pygame.image.load("ozadje_0.png").Pretvorba(),
pygame.image.load("ozadje_1.png").Pretvorba(),
pygame.image.load("ozadje_2.png").Pretvorba()
]hitrost_ozadja = [1, 2, 3]
za jaz v obseg (len (background_images)):
velikost = (širina_zaslona, višina_zaslona)
background_images[i] = pygame.transform.scale (background_images[i], velikost)
Na koncu posodobite zanko, kjer narišete plasti ozadja, da uporabite slike:
# Posodobite to kodo znotraj zanke igre
za jaz v obseg (len (plasti_ozadja)):
ozadje_plasti[i].x -= ozadje_hitrost[i]če ozadje_plasti[i].x <= -screen_width:
plasti_ozadja[i].x = 0
screen.blit (background_images[i], background_layers[i])
Tukaj je nekaj najboljših praks, ki jih morate upoštevati pri izvajanju drsnih ozadij v svojih projektih Pygame.
Optimizirajte zmogljivost
Drseča ozadja vključujejo nenehno upodabljanje in posodabljanje. Če želite zagotoviti nemoteno igranje, razmislite o optimizaciji kode in zmanjšanju nepotrebnih izračunov.
Eksperimentirajte s hitrostmi plasti
Prilagajanje hitrosti plasti ozadja lahko ustvari različne učinke. Poigrajte se z različnimi vrednostmi, da najdete pravo ravnovesje in dosežete želeni vizualni učinek.
Preizkusite na različnih velikostih zaslona
Prepričajte se, da vaša drsna ozadja dobro delujejo na različnih ločljivostih zaslona. Razmislite o implementaciji dinamičnega spreminjanja velikosti ali uporabi različnih slik ozadja za različna razmerja stranic.
Uporabite ustrezne formate slik
Če se odločite za uporabo slik za svoja ozadja, izberite ustrezno slikovno obliko (npr. PNG, JPEG), da uravnotežite velikost datoteke in kakovost slike. Čase nalaganja lahko tudi skrajšate s stiskanjem in optimizacijo slik.
Razmislite o uporabi pomnilnika
Če nameravate za svoja ozadja uporabiti veliko slik visoke ločljivosti, bodite pozorni na zahteve glede pomnilnika. Velike slike lahko porabijo precejšnjo količino pomnilnika, kar lahko vpliva na zmogljivost in odzivnost vaše igre.
Z vključitvijo drsnih ozadij lahko ustvarite različna okolja, kot so premikajoče se pokrajine, futuristične mestne pokrajine ali podvodni svetovi. Učinek paralakse doda dinamičen pridih, zaradi česar je svet igre živ in interaktiven.
Ne pozabite eksperimentirati, ponavljati in raziskovati ustvarjalnih možnosti z drsečimi ozadji, da bodo vaše igre bolj zabavne in privlačne za igralce.