I personaggi realistici interagiscono, in genere parlando tra loro. Assicurati di presentare il tuo dialogo in modo accessibile e complementare.

Se il tuo gioco presenta personaggi, probabilmente vorrai che conversino tra loro. Un sistema di dialogo fornisce conversazioni interattive, progressione della storia e sviluppo del personaggio. La libreria Python Arcade semplifica l'integrazione di un sistema di dialogo nella base di codice esistente.

Con un sistema di dialogo, puoi creare conversazioni tra il giocatore e i personaggi non giocanti (NPC). Il giocatore può scegliere le risposte o prendere decisioni che influenzano la narrativa o il risultato del gioco.

Questo sistema ti consente di creare storie avvincenti e creare interazioni dinamiche, offrendo un'esperienza di gioco più coinvolgente.

Crea un gioco semplice

Per iniziare, crea un semplice gioco utilizzando la libreria Arcade. Questo servirà come base per l'attuazione del sistema di dialogo.

Il codice utilizzato in questo articolo è disponibile in this Deposito GitHub ed è gratuito per l'uso con la licenza MIT.

instagram viewer

Crea un nuovo file denominato gioco-semplice.py e definire A Gioco classe che eredita da sala giochi. Finestra. Imposta le dimensioni dello schermo, inizializza le posizioni del giocatore e della piattaforma e implementa la funzionalità di disegno di base. IL il giocatore può muoversi a sinistra ea destra utilizzando i tasti freccia.

Ecco l'output:

Aggiunta di una finestra di dialogo

Ora che hai una struttura di gioco di base, aggiungi una finestra di dialogo che appare quando il giocatore si scontra con un nemico. Puoi creare una finestra di dialogo utilizzando forme semplici e visualizzarla sullo schermo.

Aggiungere un dialog_attivo bandiera al Gioco class, che indica se la finestra di dialogo deve essere visualizzata. Nel on_update metodo, controlla la collisione nemicae, se rilevato, impostare dialog_attivo A VERO.

Nel on_draw metodo, chiama il draw_dialogue_box metodo se il dialogo è attivo. IL draw_dialogue_box Il metodo disegna un rettangolo come sfondo della finestra di dialogo e visualizza un messaggio di testo.

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

# All'interno della classe Gioco

classeGioco(sala giochi. Finestra):
def__dentro__(se stesso):
# ...

self.dialogue_active = Falso

defon_update(self, delta_time):
Se self.check_enemy_collision():
self.dialogue_active = VERO

defon_draw(se stesso):
# ...

Se self.dialogue_active:
self.draw_dialogue_box()

defcheck_enemy_collision(se stesso):
player_radius = 25
distanza_x = abs (self.player_x - self.platform_x)
distanza_y = abs (self.player_y - self.platform_y)
raggio_combinato = raggio_giocatore + 25

Se distanza_x < raggio_combinato E distanza_y < raggio_combinato:
ritornoVERO
altro:
ritornoFalso

defdraw_dialogue_box(se stesso):
testo = "Ciao, giocatore! Come stai?"

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, bianco)

arcade.draw_text (testo, SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2 + 20, nero, font_size=16,
ancora_x="centro", ancora_y="centro")

Di seguito è riportato l'output:

Visualizzazione del testo del dialogo

Ora puoi migliorare il tuo sistema di dialogo visualizzando messaggi di testo dinamici. Crea un elenco di stringhe di dialogo e ripetile per simulare una conversazione. Ogni volta che appare la finestra di dialogo, mostrerà un nuovo messaggio.

# All'interno della classe Gioco

classeGioco(sala giochi. Finestra):
def__dentro__(se stesso):
# ...

self.dialogue_active = Falso
self.dialogue_messages = [
"Ciao, giocatore! Come stai?",
"Bel tempo oggi, vero?",
"Attenti ai nemici in agguato!"
]
self.dialogue_index = 0

defdraw_dialogue_box(se stesso):

arcade.draw_rectangle_filled (SCREEN_WIDTH // 2,
SCREEN_HEIGHT // 2, 500, 200, bianco)

arcade.draw_text (self.dialogue_messages[self.dialogue_index],
SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 + 20, nero, font_size=16,
ancora_x="centro", ancora_y="centro")

Introdurre tre nuove variabili: dialog_messages, dialog_index, E dialog_attivo. L'elenco dialog_messages contiene i messaggi di testo che verranno visualizzati nella finestra di dialogo. Il dialog_index tiene traccia del messaggio corrente da mostrare. Ogni volta che appare la finestra di dialogo, puoi incrementare dialog_index per mostrare il messaggio successivo.

Aggiunta di un pulsante

Per rendere il sistema di dialogo più interattivo, aggiungi un pulsante per modificare il testo del dialogo quando viene premuto dal giocatore. Crea un nuovo file denominato multi-testo.py e aggiungi il codice con i seguenti aggiornamenti:

# All'interno della classe Gioco

classeGioco(sala giochi. Finestra):
def__dentro__(se stesso):
# ...

self.dialogue_active = Falso

self.dialogue_messages = [
"Ciao, giocatore! Come stai?",
"Bel tempo oggi, vero?",
"Attenti ai nemici in agguato!"
]

self.dialogue_index = 0

defon_mouse_press(self, x, y, pulsante, modificatori):
index = (self.dialogue_index + 1) % len (self.dialogue_messages)

Se self.dialogue_active:
Se pulsante == sala giochi. MOUSE_BUTTON_LEFT:
self.dialogue_index = indice

defdraw_dialogue_box(se stesso):
# ...

arcade.draw_text("Prossimo", SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2 - 50,
nero, font_size=16, ancora_x="centro", ancora_y="centro")

Aggiungi il on_mouse_press metodo al Gioco classe. Quando il dialogo è attivo e si preme il tasto sinistro del mouse, questo metodo incrementa il dialog_index per visualizzare il messaggio successivo nel file dialog_messages elenco. IL % len (self.dialogue_messages) assicura che l'indice vada a capo all'inizio dell'elenco quando raggiunge la fine.

Comprese funzionalità aggiuntive

Per migliorare ulteriormente il sistema di dialogo, puoi prendere in considerazione l'aggiunta delle seguenti funzionalità aggiuntive:

Scelte multiple

Invece di un singolo messaggio, puoi fornire più scelte tra cui il giocatore può scegliere. Ciò consente al giocatore di influenzare l'esito della conversazione o prendere decisioni che influenzano l'avanzamento del gioco.

Per implementare ciò, è possibile modificare il file draw_dialogue_box metodo per visualizzare un elenco di scelte e gestire la selezione del giocatore di conseguenza.

Ritratti di personaggi

Per aggiungere un tocco visivo al tuo sistema di dialogo, puoi incorporare i ritratti dei personaggi accanto al testo. Ogni personaggio può avere un'immagine o uno sprite corrispondente che li rappresenta durante la conversazione. La visualizzazione dei ritratti dei personaggi può aiutare i giocatori a identificare l'oratore e aggiungere profondità all'esperienza narrativa.

Animazione del testo

Puoi animare il testo per renderlo visivamente più accattivante. Ad esempio, puoi far apparire il testo gradualmente, un carattere alla volta, per simulare la digitazione. Questo crea un senso di anticipazione e può rendere il dialogo più coinvolgente per il giocatore.

Effetti sonori

Aggiunta di effetti sonori al tuo sistema di dialogo può migliorare l'atmosfera generale del gioco. Ad esempio, puoi riprodurre effetti sonori quando viene visualizzata la finestra di dialogo o quando il giocatore seleziona un'opzione di dialogo. Questi segnali audio possono rendere la conversazione più coinvolgente e di grande impatto.

Buone pratiche per il sistema di dialogo

Quando si implementa un sistema di dialogo, tenere a mente le seguenti best practice:

Chiara interfaccia utente

Assicurarsi che la finestra di dialogo e il testo siano leggibili e posizionati correttamente sullo schermo. Usa caratteri, colori e dimensioni appropriati per rendere il testo facile da leggere.

Voce di carattere coerente

Mantieni la coerenza nel modo in cui i personaggi parlano e nel tono che usano durante il dialogo. Questo aiuta a creare conversazioni credibili e coinvolgenti.

Rilevanza per il gioco

Assicurati che il dialogo contribuisca in modo significativo alla narrazione del gioco o fornisca informazioni pertinenti al giocatore. Evita conversazioni eccessive o irrilevanti che potrebbero interrompere il flusso del gioco.

Test e iterazione

Prova a fondo il tuo sistema di dialogo per identificare eventuali problemi o incoerenze. Ripeti il ​​tuo dialogo in base al feedback dei giocatori per migliorare la qualità generale e l'impatto delle conversazioni.

Rendi i giochi più divertenti con il sistema di dialogo

L'aggiunta di un sistema di dialogo ai tuoi giochi utilizzando la libreria Arcade in Python può migliorare notevolmente l'esperienza del giocatore. Consente conversazioni interattive, narrazione e sviluppo del personaggio, rendendo i tuoi giochi più coinvolgenti, coinvolgenti e divertenti da giocare.