Dai ai tuoi giocatori qualcosa da imparare man mano che avanzano nel gioco.
I potenziamenti e gli oggetti collezionabili sono elementi di gioco essenziali che possono migliorare l'esperienza di gioco e aggiungere entusiasmo ai giochi arcade. Forniscono ai giocatori abilità, ricompense e sfide aggiuntive. Con la libreria arcade, sarai in grado di creare giochi avvincenti con power-up e collezionabili in pochissimo tempo.
Crea un gioco semplice
Inizia con una configurazione di base in cui il file giocatore può muoversi in quattro direzioni (sinistra, destra, su e giù) utilizzando gli input da tastiera. Inoltre, introduci un oggetto nemico per fornire interazione all'interno dell'ambiente di gioco.
Il codice utilizzato in questo articolo è disponibile in this Deposito GitHub ed è gratuito per l'uso con la licenza MIT.
Crea un nuovo file denominato gioco-semplice.py e aggiungi il codice seguente:
importare sala giochi
blu = arcade.color. BLU
rosso = arcade.color. ROSSO
nero = arcade.color. NERO
bianco = arcade.color. BIANCO
giallo = arcade.color. GIALLO
verde = arcade.color. VERDE
arancione = arcade.color. ARANCIAclasseGioco(sala giochi. Finestra):
def__dentro__(auto, larghezza, altezza):
super().__init__(larghezza, altezza)
arcade.set_background_color (nero)self.player = sala giochi. Cerchio Sprite(20, blu)
self.player.center_x = larghezza // 2
self.player.center_y = altezza // 2self.enemy = sala giochi. SpriteSolidColor(20, 20, rosso)
self.enemy.center_x = larghezza // 4
self.enemy.center_y = altezza // 4defon_draw(se stesso):
arcade.start_render()
self.player.draw()
self.enemy.draw()defaggiornamento(self, delta_time):
passaggiodefon_key_press(self, chiave, modificatori):
Se chiave == arcade.chiave. SINISTRA:
self.player.center_x -= 10
elif chiave == arcade.chiave. GIUSTO:
self.player.center_x += 10
elif chiave == arcade.chiave. SU:
self.player.center_y += 10
elif chiave == arcade.chiave. GIÙ:
self.player.center_y -= 10defprincipale():
gioco = gioco(800, 600)
arcade.run()
Se __nome__ == "__principale__":
principale()
Esegui questo codice e avrai un gioco di base con il movimento del giocatore e un oggetto nemico.
Creazione di stati di gioco
Per incorporare power-up e collezionabili, devi stabilire stati di gioco come punteggio e salute. Puoi gestire il punteggio e salute utilizzando una variabile separata. Modificare il codice per includere queste funzionalità. La salute del giocatore diminuirà quando entrerà in collisione con l'oggetto nemico.
classeGioco(sala giochi. Finestra):
def__dentro__(auto, larghezza, altezza):
super().__init__(larghezza, altezza)self.punteggio = 0
self.salute = 100defon_draw(se stesso):
arcade.draw_text(f"Punteggio: {self.punteggio}", 10, 10, bianco)
arcade.draw_text(f"Salute: {self.salute}", 10, 30, bianco)defaggiornamento(self, delta_time):
Se arcade.check_for_collision (self.player, self.enemy):
self.salute -= 10Se self.salute <= 0:
self.game_over()
defgame Over(se stesso):
# Aggiungi qui la logica del gioco
passaggio
Ora, la salute del giocatore diminuisce di 10 quando si scontra con il nemico e il punteggio e i valori della salute vengono visualizzati sullo schermo.
Aggiunta di oggetti da collezione
Successivamente, crea oggetti collezionabili che aumenteranno il punteggio del giocatore di 10 quando raccolti. Questi oggetti da collezione avranno forme diverse per varietà visiva. Crea un nuovo file denominato oggetti da collezione.py e aggiungi il codice con il seguente aggiornamento:
classeGioco(sala giochi. Finestra):
def__dentro__(auto, larghezza, altezza):
super().__init__(larghezza, altezza)self.collectibles = sala giochi. SpriteList()
per _ In allineare(5):
da collezione = sala giochi. SpriteSolidColor(20, 40, giallo)
da collezione.center_x = random.randint(0, larghezza)
collectible.center_y = random.randint(0, altezza)
self.collectibles.append (da collezione)defon_draw(se stesso):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.oggetti da collezione.draw()
arcade.draw_text(f"Punteggio: {self.punteggio}", 10, 10, bianco)
arcade.draw_text(f"Salute: {self.salute}", 10, 30, bianco)
defaggiornamento(self, delta_time):
per da collezione In self.collectibles:
Se arcade.check_for_collision (self.player, collezionabile):
self.punteggio += 10
collezionabile.remove_from_sprite_lists()
Crea un elenco di oggetti collezionabili con cinque istanze, ciascuna rappresentata da un rettangolo giallo. Quando il giocatore si scontra con un collezionabile, il suo punteggio aumenta di 10 e il collezionabile viene rimosso dalla lista degli sprite.
Aggiunta di potenziamenti
Ora puoi aggiungere potenziamenti al tuo gioco. Quando il giocatore raccoglie un potenziamento, uno scudo apparirà intorno a lui per 10 secondi. Durante questo periodo, se il giocatore si scontra con il nemico, distruggeranno il nemico. Crea un nuovo file denominato potenziamenti.py e aggiungi il codice con il seguente aggiornamento:
classeGioco(sala giochi. Finestra):
def__dentro__(auto, larghezza, altezza):
super().__init__(larghezza, altezza)self.power_up = sala giochi. SpriteSolidColor(50, 20, verde)
self.power_up.center_x = random.randint(0, larghezza)
self.power_up.center_y = random.randint(0, altezza)self.shield_active = Falso
self.shield_duration = 10
self.shield_timer = 0defon_draw(se stesso):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.oggetti da collezione.draw()
self.power_up.draw()
arcade.draw_text(f"Punteggio: {self.punteggio}", 10, 10, bianco)
arcade.draw_text(f"Salute: {self.salute}", 10, 30, bianco)defaggiornamento(self, delta_time):
Se arcade.check_for_collision (self.player, self.enemy):
Senon self.shield_active:
self.salute -= 10
Se self.salute <= 0:
self.game_over()
altro:
self.enemy.remove_from_sprite_lists()Se self.shield_active:
self.shield_timer += delta_timeSe self.shield_timer >= self.shield_duration:
self.shield_active = Falso
self.shield_timer = 0per da collezione In self.collectibles:
Se arcade.check_for_collision (self.player, collezionabile):
self.punteggio += 10
collezionabile.remove_from_sprite_lists()
Se arcade.check_for_collision (self.player, self.power_up):
self.shield_active = VERO
self.power_up.remove_from_sprite_lists()
Di seguito è riportato l'output:
Comprese funzionalità aggiuntive
Puoi migliorare ulteriormente il sistema di potenziamenti e collezionabili aggiungendo funzionalità aggiuntive. Ad esempio, puoi creare un potenziamento del timer che estende il tempo di gioco quando viene raccolto. Crea un nuovo file denominato timer-power-up.py e aggiungi il codice con il seguente aggiornamento:
classeGioco(sala giochi. Finestra):
def__dentro__(auto, larghezza, altezza):
super().__init__(larghezza, altezza)
arcade.set_background_color (nero)self.player = sala giochi. Cerchio Sprite(20, blu)
# ...self.timer_power_up = sala giochi. SpriteSolidColor(40, 20, arancia)
self.timer_power_up.center_x = random.randint(0, larghezza)
self.timer_power_up.center_y = random.randint(0, altezza)self.game_time = 60# Tempo di gioco iniziale in secondi
self.timer_power_up_duration = 10# ...
defaggiornamento(self, delta_time):
# ...Se arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()# ...
defprincipale():
gioco = gioco(800, 600)
arcade.run()
Se __nome__ == "__principale__":
principale()
Best practice per potenziamenti e collezionabili
I potenziamenti e gli oggetti collezionabili giocano un ruolo cruciale nel migliorare l'esperienza di gioco dei giochi arcade. Per garantire che questi elementi siano divertenti e ben integrati nel gioco, è essenziale seguire alcune best practice:
Chiarezza visiva e coerenza
Usa sprite distinti e visivamente accattivanti per power-up e collezionabili per distinguerli dagli altri elementi di gioco. Assicurati che l'aspetto dei potenziamenti e degli oggetti collezionabili sia in linea con i loro effetti e scopi nel gioco.
Mantieni la coerenza nel design, nelle combinazioni di colori e nelle dimensioni per potenziamenti e oggetti collezionabili durante il gioco.
Equilibrio e sfida
Regola la rarità e la distribuzione di potenziamenti e oggetti collezionabili per mantenere un senso di sfida e ricompensa per i giocatori. Evita di sopraffare i giocatori con troppi potenziamenti o collezionabili, in quanto potrebbe diminuire l'impatto e l'entusiasmo di trovarli.
Bilancia attentamente l'efficacia e la durata dei potenziamenti per evitare che siano troppo potenti o deludenti.
Indicatori e feedback chiari
Fornisci chiari indicatori visivi e audio quando il giocatore raccoglie un potenziamento o un oggetto da collezione. Mostra effetti visivi temporanei, come animazioni o particelle, per indicare l'attivazione dei potenziamenti e la loro durata.
Relazione sfida-ricompensa
Assicurati che i potenziamenti e gli oggetti collezionabili forniscano ricompense significative al giocatore, come un aumento del punteggio, abilità aggiuntive o tempo di gioco esteso. Allinea la difficoltà di ottenere potenziamenti e collezionabili con i vantaggi che offrono. Compiti più impegnativi dovrebbero produrre ricompense più preziose.
Test di gioco e bilanciamento
Prova ampiamente il gioco per osservare come i giocatori interagiscono con potenziamenti e collezionabili. Usa il feedback dei giocatori per mettere a punto la distribuzione, la durata e gli effetti di potenziamenti e collezionabili per creare un'esperienza equilibrata e divertente.
Seguendo queste migliori pratiche, puoi creare un sistema di power-up e collezionabili accattivante e ben bilanciato che migliora l'esperienza di gioco e mantiene i giocatori coinvolti nel tuo gioco arcade.
Rendi i giochi più divertenti con potenziamenti e collezionabili
I potenziamenti e gli oggetti collezionabili aggiungono un ulteriore livello di eccitazione e coinvolgimento ai giochi arcade. Non solo forniscono ai giocatori nuove abilità e ricompense, ma creano anche sfide interessanti e scelte strategiche.
Incorporando queste funzionalità utilizzando la libreria Python Arcade, puoi rendere i tuoi giochi più divertenti e migliorare l'esperienza di gioco complessiva per i tuoi giocatori. Ricordati di sperimentare, iterare e liberare la tua creatività per creare potenziamenti e collezionabili unici e accattivanti che si allineino con il tema e le meccaniche del tuo gioco.