LogoPixi’VN
Narration/Narration with JS/TS

Labels e steps

Spiega i concetti fondamentali di label e step in Pixi'VN, spiegando nel dettaglio come il flusso narrativo è strutturato e gestito all'interno del motore.

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.

Il termine step è stato introdotto da Pixi'VN per rappresentare le singole azioni o eventi che si verificano all'interno di una 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: An array of functions to be executed in order. 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.jumpLabel(labelId, props),
    ]
)

On this page