Labels e steps
Explains the core concepts of labels and steps in Pixi’VN, detailing how narrative flow is structured and managed within the engine.
Le visual novel sono solitamente costituite da una sequenza di scene con immagini e testo.
Nomenclature
Il termine label è preso da Ren'Py, dove funge da "segnalibro" o "punto di riferimento" nella storia. Nel linguaggio ink, il termine equivalente è knot.
The term step is introduced by Pixi’VN to represent the individual actions or events that occur within a label.
In Pixi’VN, l’intero flusso narrativo si basa sui concetti di labels e steps.
Una label viene utilizzata per organizzare la narrazione; funziona come un "segnalibro" o una sezione della storia. Tecnicamente, una label è una classe che funge da contenitore per i label.
Un step è un'azione o un evento individuale che si verifica all'interno di una label. I steps vengono utilizzati per visualizzare immagini, testo e altri elementi narrativi.
Il ciclo di vita di base del gioco è il seguente:
- Il gioco inizia chiamando una
label. Il primostepdellalabelviene eseguito automaticamente. - Dopodiché, collegando la funzione Next Step a un evento (ad esempio il click di un pulsante), ogni volta che la funzione viene chiamata, viene eseguito il
stepsuccessivo dellalabel. Alcunistepspossono anche avviare altrelabels. - Il gioco termina solo quando tutti gli
stepssono stati completati. A quel punto viene attivata la funzione Game.onEnd.
Aggiungi
Per creare una label, utilizza la funzione newLabel().
Questa funzione ha i seguenti parametri:
id: Un identificatore univoco (stringa). Utilizzato per fare riferimento allalabelnel gioco (deve essere univoco).steps: Una serie di funzioni da eseguire in ordine. Per creare un array dinamico, puoi trovare maggiori informazioni qui.options(Opzionale): Un oggetto con le opzioni dellalabel:onStepStart(Opzionale): una funzione eseguita prima di ognistep. Scopri di più qui.onStepEnd(Opzionale): una funzione eseguita dopo ognistep. Scopri di più qui.onLoadingLabel(Opzionale): funzione eseguita inonStepStartse l'indicestepè 0 oppure quando si carica un file di salvataggio. Scopri di più qui.
import { narration, StepLabelProps } from '@drincs/pixi-vn'
export const startLabel = newLabel("start_label",
[
() => {
narration.dialogue = { character: liam, text: "Example of dialogue" }
},
(props: StepLabelProps, { labelId }) => narration.jump(labelId, props),
]
)