Auswahlmenüs
Erklärt, wie interaktive Auswahlmenüs in Pixi’VN implementiert und angepasst werden können, sodass Spieler Entscheidungen treffen können, die die Geschichte beeinflussen.
UI-Bildschirm
Ein Beispiel des Auswahlmenü-UI-Bildschirms finden Sie im Abschnitt Schnittstellenbeispiele.
ink
Sie können diese Methode mit der ink-Syntax verwenden. Mehr erfahren Sie hier.
In Visual Novels ermöglichen Auswahlmenüs dem Spieler, Entscheidungen zu treffen, die die Geschichte beeinflussen.
In Pixi’VN können Sie den Spieler auffordern, eine Wahl zu treffen. Jede Wahl kann entweder ein label starten oder das Auswahlmenü schließen.
Den Spieler zu einer Wahl auffordern
Um den Spieler zu einer Wahl zu zwingen, setzen Sie narration.choices auf ein Array von StoredChoiceInterface. Um ein StoredChoiceInterface-Objekt zu erstellen, verwenden Sie:
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),
]);Abrufen
Um das aktuelle Auswahlmenü abzurufen, verwenden Sie narration.choices. Dies gibt ein Array von StoredChoiceInterface zurück.
const menuOptions: StoredChoiceInterface[] = narration.choices;Anfragen
Um eine Wahl auszuwählen, verwenden Sie 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) => {
// ...
});Entfernen
Um die Auswahloptionen zu löschen, setzen Sie narration.choices = undefined.
narration.choices = undefined;