See Pythoni mänguteek on täis funktsioone, sealhulgas mõningaid lihtsaid tööriistu, mida saate kasutada sujuva, parallaksi kerimise loomiseks.

Taustade kerimine võib oluliselt suurendada mängu visuaalset atraktiivsust ja sügavust. Need võivad luua liikumise illusiooni, andes mängule dünaamilise ja kaasahaarava tunde. Pygame'i abil saate keritava tausta rakendada vaid mõne lihtsa sammuga.

Pygame on populaarne Pythoni raamatukogu, mida saate mängude arendamiseks kasutada. Keritava tausta lisamine Pygame'i projektidele muudab need ellu ja pakub mängijatele kaasahaaravama kogemuse.

Looge lihtne mäng

Pygame'i keritava tausta kontseptsiooni mõistmiseks alustage lihtsa mängu loomisega, kus mängija saab liikuda vasakule ja paremale. Mängukeskkonnaks saate lisada ka kaks platvormi, mida tähistavad ristkülikud. Looge uus fail nimega lihtne-mäng.py.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Esiteks importige pygame'i moodul ja lähtestage see. Seejärel määrake mängija alguspositsioon ja liikumiskiirus. Looge platvorme kasutades

instagram viewer
pygame. Rect objektid ning määratleda nende asukohad ja mõõtmed.

Mängutsükli sees saate hallata selliseid sündmusi nagu mängust väljumine. Saate ka hakkama mängija liikumine puute- või klaviatuurisisenditel.

Siin on lihtsa mängu väljund:

Looge erinevaid kihte

Kerimisefekti saavutamiseks saate luua mitu erinevat värvi taustakihti. Iga kiht liigub erineva kiirusega, luues parallaksi efekti. See efekt loob sügavuse illusiooni ja suurendab mängus liikumistunnet.

Määrake kaks taustakihti, millest igaüks katab kogu mänguakna, kasutades Pygame'i. Otsige objekte. Samuti määrake iga kihi värvid tausta_värvid nimekirja. The background_speeds loend määrab kiiruse, millega iga kiht liigub.

# Lisage see kood eelmise jaotise alla

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

background_colors = [(30, 30, 30), (60, 60, 60)]
background_speeds = [0.1, 1.0]

Keritava taustaefekti loomiseks peate värskendama taustakihtide asukohti mängutsüklis. Liigutate iga kihti horisontaalselt vastavalt sellele määratud kiirusele.

Looge uus fail nimega scrolling-bg.py ja lisage kood koos allolevate värskendustega:

jaoks i sisse vahemik (len (background_layers)):
tausta_kihid[i].x -= tausta_kiirused[i]

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

pygame.draw.rect (ekraan, background_colors[i], background_layers[i])

Korrake läbi iga taustakihi. Lahutage kihi x-koordinaadist vastav kiirus, põhjustades selle liikumise vasakule. Kui kiht jõuab ekraani vasakusse serva, lähtestage selle asukoht paremale, luues pideva kerimise efekti.

Lõpuks joonistage iga ristküliku taustakiht ekraanil kasutades pygame.draw.rect() ja vastava värvi ja pügaami läbimine. Otsige objekt.

Parallaksiefekti lisamine liikumise ajal

Parallaksiefekti suurendamiseks saate muuta platvormi liikumist, mis toimub mängija liikumise ajal. See loob tugeva sügavustunde ja dünaamilise liikumise. Looge uus fail nimega parallaks.py ja lisage kood koos allolevate värskendustega:

# Määrake platvormi asukohad ja kiirused
rect1 = mängumäng. Rect(50, ekraani_kõrgus - 100, 200, 10)
rect2 = mängumäng. Rect (screen_width - 250, ekraani_kõrgus - 200, 200, 10)

platvormid = [
{"õige": rect1, "kiirus": 3},
{"õige": rect2, "kiirus": 1}
]

# Lisage see kood mängutsüklisse

# Mängija liikumine
võtmed = pygame.key.get_pressed()

kui võtmed[pygame. K_LEFT] ja mängija_x > 0:
mängija_x - = mängija_kiirus

jaoks platvorm sisse platvormid:
platvorm["õige"].x -= platvorm["kiirus"]

kui võtmed[pygame. K_RIGHT] ja player_x < screen_width:
mängija_x += mängija_kiirus

jaoks platvorm sisse platvormid:
platvorm["õige"].x += platvorm["kiirus"]

jaoks platvorm sisse platvormid:
pygame.draw.rect (ekraan, (0, 255, 0), platvorm["õige"])

Esitage platvormid sõnaraamatutena, mis sisaldavad nii ristkülikukujulist objekti (rekt) kui ka kiirust, millega platvorm peaks liikuma (kiirus). Platvorme värskendatakse mängutsüklis vastavalt mängija liikumisele.

Selle modifikatsiooni rakendamisel on kerimisefekt aktiivne ainult siis, kui mängija aktiivselt liigub, suurendades veelgi sügavuse ja liikumise illusiooni.

Kaasa arvatud lisafunktsioonid

Saate oma mängus keritava tausta täiustamiseks rakendada mitmeid lisafunktsioone. Siin on mõned näidised.

Taustavärvide juhusliku muutmine

Taustakihtidele variatsiooni lisamiseks saate nende värvid juhuslikult muuta. Seda saate teha muutes tausta_värvid nimekiri:

importida juhuslik

# Lisage see kood enne mängutsüklit

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))
]

Lisage rohkem taustakihte

Rikkalikuma parallaksiefekti loomiseks võite katsetada rohkemate taustakihtide lisamisega. Lihtsalt määratlege täiendav pygame. Rect objektid, värvid ja kiirused:

# Lisage see kood enne mängutsüklit

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)
]

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

background_speeds = [1, 2, 3, 4]

Kasutage taustade jaoks pilte

Ühtsete värvide asemel saate taustana kasutada pildifaile. Pygame pakub funktsioone piltide laadimiseks ja renderdamiseks.

Laadige pildifailid background_0.png, background_1.pngja background_2.png kasutades pygame.image.load(). Kasutage meetodit convert(), et parandada jõudlust ja skaleerida pilte, et need vastaksid ekraani mõõtmetele pygame.transform.scale().

# Lisage see kood enne mängutsüklit

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]

jaoks i sisse vahemik (len (background_images)):
suurus = (ekraani_laius, ekraani_kõrgus)
background_images[i] = pygame.transform.scale (background_images[i], suurus)

Lõpuks värskendage piltide kasutamiseks silmust, kuhu taustakihte joonistate:

# Värskendage seda koodi mängutsüklis

jaoks i sisse vahemik (len (background_layers)):
tausta_kihid[i].x -= tausta_kiirused[i]

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

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

Siin on mõned parimad tavad, mida Pygame'i projektides keritava tausta rakendamisel arvesse võtta.

Toimivuse optimeerimine

Keritav taust hõlmab pidevat renderdamist ja värskendamist. Sujuva mängimise tagamiseks kaaluge oma koodi optimeerimist ja tarbetute arvutuste minimeerimist.

Katsetage kihtide kiirustega

Taustakihtide kiiruste reguleerimine võib luua erinevaid efekte. Mängige erinevate väärtustega, et leida õige tasakaal ja saavutada soovitud visuaalne mõju.

Testige erineva suurusega ekraanidel

Veenduge, et teie keritav taust töötaks erinevate ekraanieraldusvõimetega hästi. Kaaluge dünaamilise skaleerimise rakendamist või erinevate taustapiltide kasutamist erinevate kuvasuhete jaoks.

Kasutage sobivaid pildivorminguid

Kui otsustate kasutada taustana pilte, valige faili suuruse ja pildikvaliteedi tasakaalustamiseks sobiv pildivorming (nt PNG, JPEG). Samuti saate oma pilte tihendades ja optimeerides laadimisaegu lühendada.

Kaaluge mälukasutust

Kui kavatsete oma tausta jaoks kasutada palju kõrge eraldusvõimega pilte, pidage meeles mälunõudeid. Suured pildid võivad tarbida märkimisväärselt palju mälu, mis võib mõjutada teie mängu jõudlust ja reageerimisvõimet.

Keritava tausta lisamisega saate luua erinevaid keskkondi, näiteks liikuvaid maastikke, futuristlikke linnavaateid või veealuseid maailmu. Parallaksiefekt lisab dünaamilist puudutust, muutes mängumaailma elavaks ja interaktiivseks.

Ärge unustage katsetada, korrata ja uurida keritava taustaga loomingulisi võimalusi, et muuta oma mängud mängijate jaoks lõbusamaks ja köitvamaks.