Creare un sistema di dialogo in Godot con GDScript
CasaCasa > Blog > Creare un sistema di dialogo in Godot con GDScript

Creare un sistema di dialogo in Godot con GDScript

Jul 06, 2023

Aggiungi personalità e background ai tuoi personaggi con un sistema di dialogo incisivo.

Nello sviluppo del gioco, un gameplay coinvolgente e una narrazione accattivante sono fondamentali per creare esperienze memorabili. Uno strumento potente che può aiutarti a raggiungere questo obiettivo è un sistema di dialogo.

Con un sistema di dialogo ben implementato, i personaggi possono comunicare, condividere informazioni e interagire con il giocatore, aggiungendo profondità e immersione al tuo gioco.

Inizia creando le basi del tuo gioco. Per questo esempio, configura un semplice ambiente 2D con un personaggio controllabile che può muoversi utilizzando i tasti freccia.

Il codice utilizzato in questo articolo è disponibile in questo repository GitHub ed è utilizzabile gratuitamente con la licenza MIT.

Inizia creando una nuova scena per il tuo personaggio giocante. All'interno di questa scena, aggiungi i componenti necessari. Creare unCarattereCorpo2D nodo per rappresentare il corpo del personaggio del giocatore. Allega aCollisionShape2Dcon forma rettangolare per definire l'area di collisione del giocatore.

Ora aggiungi il movimento dei personaggi e l'interazione con le piattaforme utilizzando GDScript. Sostituisci lo script predefinito del nodo CharacterBody2D con il seguente codice:

Questo script consente al tuo personaggio di muoversi a sinistra, destra, su e giù in base agli input dei tasti freccia. ILmuoversi_e_scontrarsiLa funzione garantisce che il personaggio interagisca con le piattaforme e risponda alle collisioni.

Ora puoi iniziare a creare il sistema di dialogo. Il primo passo è aggiungere una finestra di dialogo che visualizzerà il testo quando il tuo personaggio interagisce con oggetti o NPC specifici.

Nel tuoCarattereCorpo2Dscript, introdurre alcune variabili in più per gestire la finestra di dialogo e il suo contenuto:

ILdialog_boxsarà responsabile della visualizzazione del testo del dialogo, mentre ilpulsante_chiudiconsentirà ai giocatori di chiudere la finestra di dialogo quando necessario.

Nel_prontofunzione, creare e inizializzare la finestra di dialogo:

Ora puoi concentrarti sulla visualizzazione del testo all'interno della finestra di dialogo. Puoi fare in modo che il testo si estenda su più di una riga e scorrerlo, rivelando una riga di testo alla volta.

Modifica il tuo_processo_fisicofunzione per gestire la visualizzazione delle linee di dialogo:

Questo segmento di codice controlla se il fileline_timer è maggiore di 0. Se lo è, diminuisce il timer del valore delta. Se il timer non è attivo e ci sono più righe di dialogo da visualizzare, richiama il fileshow_next_dialogue_linefunzione.

Implementare ilshow_next_dialogue_linefunzionare come segue:

Questa funzione aggiorna il testo all'interno della finestra di dialogo con la riga di dialogo corrente e incrementa ilriga_corrente indice. ILline_timergarantisce che ciascuna riga venga visualizzata per un breve periodo prima di passare alla riga successiva.

Ora puoi dare ai giocatori la possibilità di chiudere la finestra di dialogo e continuare a giocare. Fallo con un pulsante di chiusura che, quando lo preme, nasconde la finestra di dialogo e consente al giocatore di riprendere il viaggio.

Per prima cosa, modifica il file_prontofunzione per creare un pulsante di chiusura e allegarne la funzionalità.

Questo codice crea un'istanza diPulsante classe e ne personalizza l'aspetto e la posizione. Collega anche ilpremutosegnale al_sul_pulsante_di_chiusura_premutofunzione.

Ora implementa il_sul_pulsante_di_chiusura_premuto funzione. In questa funzione, impostare la visibilità sia della finestra di dialogo che del pulsante di chiusura sufalso . Ciò nasconde effettivamente l'interfaccia di dialogo al giocatore.

Ricordarsi di reimpostare ilriga_correnteindice a 0 per garantire che il dialogo ricominci dall'inizio la prossima volta che il giocatore avvia una conversazione:

Con queste modifiche, i giocatori potranno avviare un dialogo e chiudere la finestra di dialogo quando saranno pronti a continuare a esplorare o interagire con il mondo di gioco.