Táto herná knižnica Python je plná funkcií vrátane niekoľkých jednoduchých nástrojov, ktoré môžete použiť na vytvorenie hladkého paralaxného rolovania.

Posúvanie pozadia môže výrazne zvýšiť vizuálnu príťažlivosť a hĺbku hry. Dokážu vytvoriť ilúziu pohybu a dodajú hre dynamický a pohlcujúci pocit. Pomocou Pygame môžete implementovať rolovacie pozadie v niekoľkých jednoduchých krokoch.

Pygame je populárna knižnica Pythonu, ktorú môžete použiť na vývoj hier. Pridanie rolovacieho pozadia do vašich projektov Pygame ich oživí a hráčom poskytne pútavejší zážitok.

Vytvorte jednoduchú hru

Aby ste pochopili koncept rolovania pozadia v Pygame, začnite vytvorením jednoduchej hry, v ktorej sa hráč môže pohybovať doľava a doprava. Môžete tiež zahrnúť dve platformy, reprezentované obdĺžnikmi, ktoré budú slúžiť ako herné prostredie. Vytvorte nový súbor s názvom jednoduchá hra.py.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Najprv importujte modul pygame a inicializujte ho. Potom definujte hráčovu štartovaciu pozíciu a rýchlosť pohybu. Vytvorte platformy pomocou

instagram viewer
pygame. Rect objektov a definovať ich polohy a rozmery.

V rámci hernej slučky zvládajte udalosti, ako je napríklad ukončenie hry. Môžete tiež zvládnuť pohyb hráča na základe dotykov alebo vstupov z klávesnice.

Tu je výstup z jednoduchej hry:

Vytvorte rôzne vrstvy

Ak chcete dosiahnuť efekt posúvania, môžete vytvoriť viacero vrstiev pozadia s rôznymi farbami. Každá vrstva sa bude pohybovať inou rýchlosťou, čím vznikne efekt paralaxy. Tento efekt dáva ilúziu hĺbky a zvyšuje pocit pohybu v hre.

Pomocou pygame definujte dve vrstvy pozadia, z ktorých každá pokrýva celé herné okno. Priame predmety. Definujte tiež farby každej vrstvy v farby_pozadia zoznam. The rýchlosti_pozadia zoznam určuje rýchlosť, akou sa bude každá vrstva pohybovať.

# Pridajte tento kód pod predchádzajúcu časť

background_layers = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]

farby_pozadia = [(30, 30, 30), (60, 60, 60)]
rýchlosť_pozadia = [0.1, 1.0]

Ak chcete vytvoriť efekt rolovania pozadia, musíte aktualizovať pozície vrstiev pozadia v hernej slučke. Každú vrstvu posuniete vodorovne na základe jej priradenej rýchlosti.

Vytvorte nový súbor s názvom scrolling-bg.py a pridajte kód s nižšie uvedenými aktualizáciami:

pre i v rozsah (dĺžka (vrstvy_pozadia)):
background_layers[i].x -= background_speeds[i]

ak background_layers[i].x <= -screen_width:
background_layers[i].x = 0

pygame.draw.rect (obrazovka, farby_pozadia[i], vrstvy_pozadia[i])

Iterujte cez každú vrstvu pozadia. Odčítajte zodpovedajúcu rýchlosť od x-ovej súradnice vrstvy, čo spôsobí jej pohyb doľava. Ak vrstva dosiahne ľavý okraj obrazovky, obnovte jej polohu doprava, čím sa vytvorí efekt súvislého posúvania.

nakoniec nakreslite každú obdĺžnikovú vrstvu pozadia na obrazovke pomocou pygame.draw.rect() a odovzdanie zodpovedajúcej farby a pygame. Priamy objekt.

Pridanie efektu paralaxy počas pohybu

Ak chcete zvýšiť efekt paralaxy, môžete upraviť pohyb plošiny tak, aby sa vyskytol, keď sa hráč pohybuje. To vytvorí silný pocit hĺbky a dynamického pohybu. Vytvorte nový súbor s názvom paralaxa.py a pridajte kód s nižšie uvedenými aktualizáciami:

# Definujte polohy a rýchlosti plošiny
rect1 = pygame. Rect(50, výška_obrazovky - 100, 200, 10)
rect2 = pygame. Obdĺžnik (šírka obrazovky - 250, výška_obrazovky - 200, 200, 10)

platformy = [
{"rect": rect1, "rýchlosť": 3},
{"rect": obdĺžnik 2, "rýchlosť": 1}
]

# Pridajte tento kód do hernej slučky

# Pohyb hráča
keys = pygame.key.get_pressed()

ak kľúče [pygame. K_LEFT] a player_x > 0:
player_x -= player_speed

pre plošina v platformy:
plošina["rect"].x -= platforma["rýchlosť"]

ak kľúče [pygame. K_RIGHT] a player_x < screen_width:
player_x += player_speed

pre plošina v platformy:
plošina["rect"].x += platforma["rýchlosť"]

pre plošina v platformy:
pygame.draw.rect (obrazovka, (0, 255, 0), plošina["rect"])

Predstavte platformy ako slovníky, ktoré obsahujú objekt obdĺžnika (rect) a rýchlosť, ktorou by sa platforma mala pohybovať (rýchlosť). Platformy sa aktualizujú v hernej slučke na základe pohybu hráča.

Implementáciou tejto úpravy bude rolovací efekt aktívny iba vtedy, keď sa hráč aktívne pohybuje, čo ešte viac umocní ilúziu hĺbky a pohybu.

Vrátane ďalších funkcií

Môžete implementovať niekoľko ďalších funkcií na vylepšenie rolovacieho pozadia vo vašej hre. Tu je niekoľko príkladov.

Randomizujte farby pozadia

Ak chcete pridať variáciu k vrstvám pozadia, môžete náhodne usporiadať ich farby. Môžete to urobiť úpravou farby_pozadia zoznam:

importovať náhodný

# Pridajte tento kód pred hernou slučkou

farby_pozadia = [
(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))
]

Pridať ďalšie vrstvy pozadia

Môžete experimentovať s pridaním ďalších vrstiev pozadia, aby ste vytvorili bohatší efekt paralaxy. Jednoducho definujte ďalšie pygame. Rect objekty, farby a rýchlosti:

# Pridajte tento kód pred hernou slučkou

background_layers = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, screen_width, screen_height)
]

farby_pozadia = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

rýchlosť_pozadia = [1, 2, 3, 4]

Použite obrázky ako pozadie

Namiesto plných farieb môžete ako pozadie použiť obrazové súbory. Pygame poskytuje funkcie na načítanie a vykreslenie obrázkov.

Načítajte obrazové súbory background_0.png, background_1.png, a background_2.png použitím pygame.image.load(). Pomocou metódy convert() zvýšite výkon a upravte veľkosť obrázkov tak, aby zodpovedali rozmerom obrazovky pygame.transform.scale().

# Pridajte tento kód pred hernou slučkou

background_images = [
pygame.image.load("background_0.png").convert(),
pygame.image.load("background_1.png").convert(),
pygame.image.load("background_2.png").convert()
]

rýchlosť_pozadia = [1, 2, 3]

pre i v rozsah (len (background_images)):
veľkosť = (šírka_obrazovky, výška_obrazovky)
background_images[i] = pygame.transform.scale (background_images[i], veľkosť)

Nakoniec aktualizujte slučku, v ktorej kreslíte vrstvy pozadia, aby ste použili obrázky:

# Aktualizujte tento kód v hernej slučke

pre i v rozsah (dĺžka (vrstvy_pozadia)):
background_layers[i].x -= background_speeds[i]

ak background_layers[i].x <= -screen_width:
background_layers[i].x = 0

screen.blit (background_images[i], background_layers[i])

Tu je niekoľko osvedčených postupov, ktoré je potrebné zvážiť pri implementácii rolovacieho pozadia vo vašich projektoch Pygame.

Optimalizovať výkon

Posúvanie pozadia zahŕňa nepretržité vykresľovanie a aktualizáciu. Ak chcete zabezpečiť plynulé hranie, zvážte optimalizáciu kódu a minimalizovanie zbytočných výpočtov.

Experimentujte s rýchlosťami vrstiev

Úprava rýchlostí vrstiev pozadia môže vytvoriť rôzne efekty. Pohrajte sa s rôznymi hodnotami, aby ste našli správnu rovnováhu a dosiahli požadovaný vizuálny vplyv.

Testovanie na rôznych veľkostiach obrazovky

Uistite sa, že vaše rolovacie pozadie funguje dobre pri rôznych rozlíšeniach obrazovky. Zvážte implementáciu dynamického škálovania alebo použitie rôznych obrázkov na pozadí pre rôzne pomery strán.

Použite vhodné formáty obrázkov

Ak sa rozhodnete pre pozadie použiť obrázky, vyberte vhodný formát obrázka (napr. PNG, JPEG), aby ste vyvážili veľkosť súboru a kvalitu obrázka. Čas načítania môžete skrátiť aj komprimáciou a optimalizáciou obrázkov.

Zvážte využitie pamäte

Ak plánujete na pozadie použiť veľa obrázkov s vysokým rozlíšením, pamätajte na požiadavky na pamäť. Veľké obrázky môžu spotrebovať značné množstvo pamäte, čo môže ovplyvniť výkon a odozvu vašej hry.

Začlenením rolovacieho pozadia môžete vytvárať rôzne prostredia, ako sú pohyblivé krajiny, futuristické panorámy miest alebo podmorské svety. Paralaxový efekt pridáva dynamický nádych, vďaka čomu je herný svet živý a interaktívny.

Nezabudnite experimentovať, opakovať a skúmať kreatívne možnosti s posúvaním pozadia, aby boli vaše hry pre hráčov zábavnejšie a podmanivejšie.