LogoPixi’VN
NarrazioneNarrazione con JS/TS

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 primo step della label viene 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 step successivo della label. Alcuni steps possono anche avviare altre labels.
  • Il gioco termina solo quando tutti gli steps sono 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 alla label nel 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 della label:
    • onStepStart (Opzionale): una funzione eseguita prima di ogni step. Scopri di più qui.
    • onStepEnd (Opzionale): una funzione eseguita dopo ogni step. Scopri di più qui.
    • onLoadingLabel (Opzionale): funzione eseguita in onStepStart se l'indice step è 0 oppure quando si carica un file di salvataggio. Scopri di più qui.
labels/startLabel.ts
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),
    ]
)

On this page