Šī Python spēļu bibliotēka ir pilna ar funkcijām, tostarp dažiem vienkāršiem rīkiem, ko varat izmantot, lai izveidotu vienmērīgu, paralaksisku ritināšanu.
Ritinot fonu, var ievērojami uzlabot spēles vizuālo pievilcību un dziļumu. Tie var radīt kustības ilūziju, piešķirot spēlei dinamisku un ieskaujošu sajūtu. Izmantojot Pygame, varat ieviest ritināšanas fonus, veicot tikai dažas vienkāršas darbības.
Pygame ir populāra Python bibliotēka, ko varat izmantot spēļu izstrādei. Ritināmā fona pievienošana saviem Pygame projektiem atdzīvinās tos un nodrošinās spēlētājiem saistošāku pieredzi.
Izveidojiet vienkāršu spēli
Lai saprastu Pygame fonu ritināšanas jēdzienu, sāciet, izveidojot vienkāršu spēli, kurā spēlētājs var pārvietoties pa kreisi un pa labi. Varat arī iekļaut divas platformas, kuras attēlo taisnstūri, lai tās kalpotu kā spēles vide. Izveidojiet jaunu failu ar nosaukumu simple-game.py.
Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.
Pirmkārt, importējiet pygame moduli un inicializējiet to. Pēc tam nosakiet spēlētāja sākuma pozīciju un kustības ātrumu. Izveidojiet platformas, izmantojot pygame. Rekt objektus un definēt to pozīcijas un izmērus.
Spēles cilpas ietvaros apstrādājiet tādus notikumus kā spēles aiziešana. Vari arī tikt galā atskaņotāja kustība, pamatojoties uz pieskārienu vai tastatūras ievadi.
Šeit ir vienkāršas spēles rezultāts:
Izveidojiet dažādus slāņus
Lai sasniegtu ritināšanas efektu, varat izveidot vairākus fonu slāņus ar dažādām krāsām. Katrs slānis pārvietosies ar atšķirīgu ātrumu, radot paralakses efektu. Šis efekts rada dziļuma ilūziju un uzlabo kustības sajūtu spēlē.
Izmantojot pygame, definējiet divus fona slāņus, no kuriem katrs aptver visu spēles logu. Taisīt objektus. Nosakiet arī katra slāņa krāsas background_colors sarakstu. The background_speeds saraksts nosaka katra slāņa kustības ātrumu.
# Pievienojiet šo kodu zem iepriekšējās sadaļas
background_layers = [
pygame. Rect(0, 0, screen_width, screen_height),
pygame. Rect(0, 0, ekrāna_platums, ekrāna_augstums)
]
background_colors = [(30, 30, 30), (60, 60, 60)]
background_speeds = [0.1, 1.0]
Lai izveidotu ritināšanas fona efektu, jums ir jāatjaunina fona slāņu pozīcijas spēles cilpā. Jūs pārvietosit katru slāni horizontāli, pamatojoties uz tam piešķirto ātrumu.
Izveidojiet jaunu failu ar nosaukumu scrolling-bg.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
priekš i iekšā diapazons (len (background_layers)):
fona_slāņi[i].x -= fona_ātrumi[i]ja background_layers[i].x <= -screen_width:
background_layers[i].x = 0
pygame.draw.rect (ekrāns, background_colors[i], background_layers[i])
Atkārtojiet katru fona slāni. Atņemiet atbilstošo ātrumu no slāņa x koordinātas, liekot tai pārvietoties pa kreisi. Ja slānis sasniedz ekrāna kreiso malu, atiestatiet tā pozīciju pa labi, radot nepārtrauktas ritināšanas efektu.
Visbeidzot, uzzīmējiet katru taisnstūra fona slāni ekrānā, izmantojot pygame.draw.rect() un nododot atbilstošo krāsu un pygame. Taisīt objektu.
Paralakses efekta pievienošana kustības laikā
Lai uzlabotu paralakses efektu, varat modificēt platformas kustību, lai tā notiktu, kad spēlētājs kustas. Tas radīs spēcīgu dziļuma sajūtu un dinamisku kustību. Izveidojiet jaunu failu ar nosaukumu paralakss.py un pievienojiet kodu ar tālāk norādītajiem atjauninājumiem:
# Definējiet platformas pozīcijas un ātrumus
taisnais1 = pygame. Rect(50, ekrāna_augstums — 100, 200, 10)
taisnais2 = pygame. Taisns (screen_width - 250, ekrāna_augstums — 200, 200, 10)platformas = [
{"taisni": taisnais1, "ātrums": 3},
{"taisni": taisnais2, "ātrums": 1}
]# Pievienojiet šo kodu spēles cilpai
# Spēlētāja kustība
taustiņi = pygame.key.get_pressed()ja atslēgas [pygame. K_LEFT] un player_x > 0:
player_x -= spēlētāja_ātrumspriekš platforma iekšā platformas:
platforma["taisni"].x -= platforma["ātrums"]ja atslēgas [pygame. K_RIGHT] un player_x < screen_width:
player_x += player_speedpriekš platforma iekšā platformas:
platforma["taisni"].x += platforma["ātrums"]
priekš platforma iekšā platformas:
pygame.draw.rect (ekrāns, (0, 255, 0), platforma["taisni"])
Attēlojiet platformas kā vārdnīcas, kurās ir gan taisnstūra objekts (taisns), gan ātrums, ar kādu platformai jāpārvietojas (ātrums). Platformas tiek atjauninātas spēles ciklā, pamatojoties uz spēlētāja kustību.
Ieviešot šo modifikāciju, ritināšanas efekts būs aktīvs tikai tad, kad spēlētājs aktīvi kustas, vēl vairāk pastiprinot dziļuma un kustības ilūziju.
Ieskaitot papildu funkcijas
Varat ieviest vairākas papildu funkcijas, lai uzlabotu spēles ritināšanas fonu. Šeit ir daži piemēri.
Fona krāsu nejaušināšana
Lai fona slāņiem pievienotu variācijas, varat nejauši sakārtot to krāsas. To var izdarīt, modificējot background_colors saraksts:
imports nejauši
# Pievienojiet šo kodu pirms spēles cilpas
background_colors = [
(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))
]
Pievienojiet vairāk fona slāņu
Varat eksperimentēt ar vairāk fona slāņu pievienošanu, lai radītu bagātīgāku paralakses efektu. Vienkārši definējiet papildu pygame. Rekt objekti, krāsas un ātrumi:
# Pievienojiet šo kodu pirms spēles cilpas
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, ekrāna_platums, ekrāna_augstums)
]background_colors = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
background_speeds = [1, 2, 3, 4]
Izmantojiet attēlus foniem
Vienkrāsainu krāsu vietā kā fonu varat izmantot attēlu failus. Pygame nodrošina attēlu ielādes un renderēšanas funkcijas.
Ielādējiet attēlu failus background_0.png, background_1.png, un background_2.png izmantojot pygame.image.load(). Izmantojiet metodi convert(), lai uzlabotu veiktspēju un mērogotu attēlus, lai tie atbilstu ekrāna izmēriem pygame.transform.scale().
# Pievienojiet šo kodu pirms spēles cilpas
background_images = [
pygame.image.load("background_0.png").convert(),
pygame.image.load("background_1.png").convert(),
pygame.image.load("background_2.png").convert()
]background_speeds = [1, 2, 3]
priekš i iekšā diapazons (len (background_images)):
izmērs = (ekrāna_platums, ekrāna_augstums)
background_images[i] = pygame.transform.scale (background_images[i], izmērs)
Visbeidzot, atjauniniet cilpu, kurā zīmējat fona slāņus, lai izmantotu attēlus:
# Atjauniniet šo kodu spēles cilpas ietvaros
priekš i iekšā diapazons (len (background_layers)):
fona_slāņi[i].x -= fona_ātrumi[i]ja background_layers[i].x <= -screen_width:
background_layers[i].x = 0
screen.blit (background_images[i], background_layers[i])
Šeit ir daži paraugprakses ieteikumi, kas jāņem vērā, ieviešot ritināšanas fonus savos Pygame projektos.
Optimizējiet veiktspēju
Ritināšanas fons ietver nepārtrauktu renderēšanu un atjaunināšanu. Lai nodrošinātu vienmērīgu spēli, apsveriet iespēju optimizēt savu kodu un samazināt nevajadzīgus aprēķinus.
Eksperimentējiet ar slāņu ātrumu
Fona slāņu ātruma pielāgošana var radīt dažādus efektus. Spēlējiet ar dažādām vērtībām, lai atrastu pareizo līdzsvaru un sasniegtu vēlamo vizuālo efektu.
Pārbaude uz dažādu izmēru ekrāniem
Nodrošiniet, lai ritināmie foni labi darbotos dažādās ekrāna izšķirtspējās. Apsveriet iespēju ieviest dinamisku mērogošanu vai izmantot dažādus fona attēlus dažādām malu attiecībām.
Izmantojiet atbilstošus attēlu formātus
Ja izlemjat fonam izmantot attēlus, izvēlieties atbilstošu attēla formātu (piem., PNG, JPEG), lai līdzsvarotu faila lielumu un attēla kvalitāti. Varat arī samazināt ielādes laiku, saspiežot un optimizējot attēlus.
Apsveriet atmiņas izmantošanu
Ja plānojat fonam izmantot daudz augstas izšķirtspējas attēlu, ņemiet vērā atmiņas prasības. Lieli attēli var patērēt ievērojamu daudzumu atmiņas, potenciāli ietekmējot spēles veiktspēju un atsaucību.
Iekļaujot ritināmus fonus, varat izveidot dažādas vides, piemēram, kustīgas ainavas, futūristiskas pilsētas ainavas vai zemūdens pasaules. Paralakses efekts piešķir dinamisku pieskārienu, liekot spēles pasaulei justies dzīvai un interaktīvai.
Atcerieties eksperimentēt, atkārtot un izpētīt radošās iespējas, izmantojot ritināšanas fonu, lai padarītu spēles jautrākas un aizraujošākas spēlētājiem.