Questa libreria di giochi Python è ricca di funzionalità, inclusi alcuni semplici strumenti che puoi utilizzare per creare uno scorrimento fluido e parallasse.

Lo scorrimento degli sfondi può migliorare notevolmente l'aspetto visivo e la profondità di un gioco. Possono creare l'illusione del movimento, conferendo al gioco una sensazione dinamica e coinvolgente. Puoi implementare sfondi a scorrimento in pochi semplici passaggi utilizzando Pygame.

Pygame è una popolare libreria Python che puoi usare per sviluppare giochi. L'aggiunta di sfondi scorrevoli ai tuoi progetti Pygame li darà vita e offrirà un'esperienza più coinvolgente per i giocatori.

Crea un gioco semplice

Per comprendere il concetto di scorrimento degli sfondi in Pygame, inizia creando un gioco semplice in cui il giocatore può spostarsi a destra ea sinistra. Puoi anche includere due piattaforme, rappresentate da rettangoli, che fungano da ambiente di gioco. Crea un nuovo file denominato gioco-semplice.py.

Il codice utilizzato in questo articolo è disponibile in this

instagram viewer
Deposito GitHub ed è gratuito per l'uso con la licenza MIT.

Innanzitutto, importa il modulo pygame e inizializzalo. Quindi definisci la posizione di partenza e la velocità di movimento del giocatore. Crea piattaforme usando pygame. Rett oggetti e definirne le posizioni e le dimensioni.

All'interno del ciclo di gioco, gestisci eventi come l'uscita dal gioco. Puoi anche gestire movimento del giocatore basato su input tattili o da tastiera.

Ecco l'output del semplice gioco:

Crea livelli diversi

Per ottenere l'effetto di scorrimento, puoi creare più livelli di sfondi con colori diversi. Ogni livello si sposterà a una velocità diversa, creando un effetto di parallasse. Questo effetto dà l'illusione della profondità e migliora il senso del movimento nel gioco.

Definisci due livelli di sfondo, ognuno dei quali copre l'intera finestra di gioco, usando pygame. Oggetti retti. Definisci anche i colori di ogni livello nel file background_colors elenco. IL background_speeds list determina la velocità alla quale ogni strato si sposterà.

# Aggiungi questo codice sotto la sezione precedente

background_layers = [
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo),
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo)
]

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

Per creare l'effetto di sfondo a scorrimento, devi aggiornare le posizioni dei livelli di sfondo nel ciclo di gioco. Sposterai ogni livello orizzontalmente in base alla velocità assegnata.

Crea un nuovo file denominato scrolling-bg.py e aggiungi il codice con i seguenti aggiornamenti:

per io In intervallo (len (background_layers)):
background_layers[i].x -= background_speeds[i]

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

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

Scorri ogni livello di sfondo. Sottrai la velocità corrispondente dalla coordinata x del livello, facendolo spostare a sinistra. Se un livello raggiunge il bordo sinistro dello schermo, reimposta la sua posizione a destra, creando un effetto di scorrimento continuo.

Finalmente, disegna ogni livello di sfondo rettangolare sullo schermo utilizzando pygame.draw.rect() e passando il colore e il pygame corrispondenti. Oggetto retto.

Aggiunta di un effetto di parallasse durante lo spostamento

Per migliorare l'effetto di parallasse, puoi modificare il movimento della piattaforma in modo che avvenga quando il giocatore si muove. Questo creerà un forte senso di profondità e movimento dinamico. Crea un nuovo file denominato parallasse.py e aggiungi il codice con i seguenti aggiornamenti:

# Definire le posizioni e le velocità della piattaforma
rect1 = pygame. Rett(50, altezza_schermo - 100, 200, 10)
rect2 = pygame. Rett (larghezza_schermo - 250, altezza_schermo - 200, 200, 10)

piattaforme = [
{"retto": rect1, "velocità": 3},
{"retto": rect2, "velocità": 1}
]

# Aggiungi questo codice all'interno del ciclo di gioco

# Movimento del giocatore
chiavi = pygame.key.get_pressed()

Se chiavi[pygame. K_SINISTRA] E giocatore_x > 0:
player_x -= player_speed

per piattaforma In piattaforme:
piattaforma["retto"].x -= piattaforma["velocità"]

Se chiavi[pygame. K_DESTRA] E giocatore_x < larghezza_schermo:
player_x += player_speed

per piattaforma In piattaforme:
piattaforma["retto"].x += piattaforma["velocità"]

per piattaforma In piattaforme:
pygame.draw.rect (schermo, (0, 255, 0), piattaforma["retto"])

Rappresenta le piattaforme come dizionari che contengono sia l'oggetto rettangolo (rect) che la velocità alla quale la piattaforma dovrebbe muoversi (speed). Le piattaforme si aggiornano nel ciclo di gioco in base al movimento del giocatore.

Implementando questa modifica, l'effetto di scorrimento sarà attivo solo quando il giocatore si sta muovendo attivamente, migliorando ulteriormente l'illusione di profondità e movimento.

Comprese funzionalità aggiuntive

Puoi implementare diverse funzionalità aggiuntive per migliorare gli sfondi a scorrimento nel tuo gioco. Ecco alcuni esempi.

Randomizza i colori di sfondo

Per aggiungere variazioni ai livelli di sfondo, puoi randomizzare i loro colori. Puoi farlo modificando il file background_colors elenco:

importare casuale

# Aggiungi questo codice prima del ciclo di gioco

background_colors = [
(casuale.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(casuale.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(casuale.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
]

Aggiungi altri livelli di sfondo

Puoi sperimentare aggiungendo più livelli di sfondo per creare un effetto di parallasse più ricco. Basta definire aggiuntivo pygame. Rett oggetti, colori e velocità:

# Aggiungi questo codice prima del ciclo di gioco

background_layers = [
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo),
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo),
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo),
pygame. Rett(0, 0, larghezza_schermo, altezza_schermo)
]

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

background_speeds = [1, 2, 3, 4]

Usa le immagini per gli sfondi

Invece di colori a tinta unita, puoi utilizzare i file di immagine come sfondi. Pygame fornisce funzioni per caricare e rendere le immagini.

Carica i file immagine background_0.png, background_1.png, E background_2.png utilizzando pygame.image.load(). Utilizzare il metodo convert() per migliorare le prestazioni e ridimensionare le immagini in modo che corrispondano alle dimensioni dello schermo pygame.transform.scale().

# Aggiungi questo codice prima del ciclo di gioco

background_images = [
pygame.image.load("sfondo_0.png").convertire(),
pygame.image.load("sfondo_1.png").convertire(),
pygame.image.load("sfondo_2.png").convertire()
]

background_speeds = [1, 2, 3]

per io In intervallo (len (background_images)):
dimensione = (larghezza_schermo, altezza_schermo)
background_images[i] = pygame.transform.scale (background_images[i], dimensione)

Infine, aggiorna il ciclo in cui disegni i livelli di sfondo per utilizzare le immagini:

# Aggiorna questo codice all'interno del ciclo di gioco

per io In intervallo (len (background_layers)):
background_layers[i].x -= background_speeds[i]

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

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

Ecco alcune best practice da considerare quando si implementano gli sfondi a scorrimento nei progetti Pygame.

Ottimizza le prestazioni

Gli sfondi a scorrimento comportano rendering e aggiornamenti continui. Per garantire un gameplay fluido, prendi in considerazione l'ottimizzazione del codice e la riduzione al minimo dei calcoli non necessari.

Sperimenta con le velocità dei livelli

La regolazione della velocità dei livelli di sfondo può creare effetti diversi. Gioca con valori diversi per trovare il giusto equilibrio e ottenere l'impatto visivo desiderato.

Prova su diverse dimensioni dello schermo

Assicurati che i tuoi sfondi a scorrimento funzionino bene su varie risoluzioni dello schermo. Prendi in considerazione l'implementazione del ridimensionamento dinamico o l'utilizzo di immagini di sfondo diverse per proporzioni diverse.

Usa formati di immagine appropriati

Se decidi di utilizzare le immagini per i tuoi sfondi, scegli il formato immagine appropriato (ad es. PNG, JPEG) per bilanciare le dimensioni del file e la qualità dell'immagine. Puoi anche ridurre i tempi di caricamento comprimendo e ottimizzando le tue immagini.

Considera l'utilizzo della memoria

Se prevedi di utilizzare molte immagini ad alta risoluzione per i tuoi sfondi, fai attenzione ai requisiti di memoria. Le immagini di grandi dimensioni possono consumare una notevole quantità di memoria, influenzando potenzialmente le prestazioni e la reattività del tuo gioco.

Incorporando sfondi scorrevoli, puoi creare ambienti diversi, come paesaggi in movimento, paesaggi urbani futuristici o mondi sottomarini. L'effetto di parallasse aggiunge un tocco dinamico, rendendo il mondo di gioco vivo e interattivo.

Ricorda di sperimentare, iterare ed esplorare possibilità creative con sfondi a scorrimento per rendere i tuoi giochi più divertenti e accattivanti per i giocatori.