LogoPixi’VN
NarrazioneNarrazione con JS/TS

Menu di scelta

Spiega come implementare e personalizzare menu di scelta interattivi in Pixi'VN, permettendo ai giocatori di prendere decisioni che influenzano la storia.

Schermata UI

Puoi trovare un esempio della schermata UI del menu di scelta nella sezione esempi di interfaccia.

ink

Puoi usare questo metodo con la sintassi ink. Scopri di più qui.

Nelle visual novel, i menu di scelta permettono al giocatore di prendere decisioni che influenzano la storia.

In Pixi’VN, puoi chiedere al giocatore di fare una scelta. Ogni scelta può avviare una label oppure chiudere il menu di scelta.

Richiedere al giocatore di fare una scelta

Per richiedere al giocatore di fare una scelta, imposta narration.choices su un array di StoredChoiceInterface. Per creare un oggetto StoredChoiceInterface, usa:

content/labels/start.label.ts
import {
    newChoiceOption,
    newCloseChoiceOption,
    narration,
    newLabel,
} from "@drincs/pixi-vn";

export const startLabel = newLabel("start", [
    async () => {
        narration.dialogue = "Choose a fruit:";
        narration.choices = [
            newChoiceOption("Orange", orangeLabel, {}), // by default, the label will be called with "call"
            newChoiceOption("Banana", bananaLabel, {}, { type: "jump" }), 
            newChoiceOption(
                "Apple", 
                appleLabel, 
                { quantity: 5 }, 
                { type: "call" }, 
            ), 
            newCloseChoiceOption("Cancel"), 
        ]; 
    },
    () => {
        narration.dialogue = "Restart";
    },
    async (props) => await narration.jump("start", props),
]);

Ottenere

Per ottenere il menu di scelta corrente, usa narration.choices. Restituisce un array di StoredChoiceInterface.

const menuOptions: StoredChoiceInterface[] = narration.choices;

Richiedere

Per selezionare una scelta, usa narration.selectChoice.

const item = narration.choices![0]; // get the first item

narration
    .selectChoice(item, {
        // Add StepLabelProps here
        navigate: navigate, // example
        // And the props to pass to the label
        ...item.props,
    })
    .then(() => {
        // ...
    })
    .catch((e) => {
        // ...
    });

Rimuovere

Per cancellare le opzioni di scelta, imposta narration.choices = undefined.

narration.choices = undefined;

Altre funzionalità

In questa pagina