LogoPixi’VN

Intégration du langage ink

Créez des récits interactifs en utilisant ink, un langage de script conçu pour les histoires à embranchements, intégré à Pixi’VN.

Pixi’VN vous permet d’écrire des récits interactifs en utilisant ink, un langage de script conçu pour les histoires à embranchements.

Qu’est-ce que ink ? ink est un langage de script simple pour les histoires interactives, utilisé dans des jeux comme 80 Days, Heaven's Vault et Sorcery! Pour en savoir plus, consultez le site officiel de ink.

L’intégration ink + Pixi’VN utilise inkjs et PixiVNJson pour analyser le code *ink*** ** et générer du JSON que Pixi’VN peut interpréter. Cela signifie que JavaScript/TypeScript et ink partagent le même stockage et canvas, et vous pouvez lancer des knots (ou labels) de ink depuis JavaScript/TypeScript et vice versa. Vous profitez ainsi du meilleur des deux mondes : écrire la narration en ink et utiliser JavaScript/TypeScript pour des mini-jeux ou des animations avancées.

file_type_ink
ink/start.ink
=== start ===
We arrived into London at 9.45pm exactly.

* "There is not a moment to lose!"[] I declared.
 -> hurry_outside

* "Monsieur, let us savour this moment!"[] I declared.
 My master clouted me firmly around the head and dragged me out of the door.
 -> dragged_outside

* [We hurried home] -> hurry_outside

=== hurry_outside ===
We hurried home to Savile Row -> as_fast_as_we_could

=== dragged_outside ===
He insisted that we hurried home to Savile Row
-> as_fast_as_we_could

=== as_fast_as_we_could ===
<> as fast as we could.
-> start

Why?

Écrire la narration directement en JavaScript/TypeScript peut être lent et complexe, surtout pour les débutants. ink est beaucoup plus facile à apprendre et à utiliser.

Les nouveaux développeurs peuvent commencer avec un modèle ink, puis apprendre progressivement JavaScript/TypeScript pour des fonctionnalités avancées.

Installation

Templates

Vous commencez un nouveau projet Pixi’VN ? Utilisez un modèle qui inclut déjà ink.

Pour installer le paquet ink dans un projet JavaScript existant, utilisez l’une des commandes suivantes:

npm install @drincs/pixi-vn @drincs/pixi-vn-ink

Initialisation

Après l’installation, utilisez importInkText() pour charger votre script *ink*** **:

main.ts
import { importInkText } from '@drincs/pixi-vn-ink'

const inkText = `
=== start ===
Hello
-> END
`

importInkText([inkText, ...])

Vous pouvez ensuite exécuter un knot (ou label) de ink avec les fonctions Pixi’VN:

main.ts
import { narration } from '@drincs/pixi-vn'

narration.call(`start`, {})

Fonctionnalités à venir

Ces fonctionnalités sont en cours de développement.

Montrez votre intérêt en aimant ou commentant les issues.

Syntaxe ink ignorée par Pixi’VN

Certaines syntaxes de ink sont ignorées par Pixi’VN. Vous pouvez les utiliser dans votre script *ink*** ** (par exemple pour tester dans l’éditeur Inky), mais Pixi’VN ne les traitera pas.

INCLUDE

INCLUDE est une instruction ink pour inclure un autre fichier ink. Dans Pixi’VN, vous devez utiliser importInkText() pour charger plusieurs fichiers ink, donc INCLUDE est ignoré.

Narration en dehors des knots

La narration en dehors des knots (ou labels) est ignorée, sauf pour les variables.

For example:

file_type_ink
ink
VAR my_var = false // ✅ This will be handled (because it is a variable)
Hello // ❌ This will be ignored  [!code warning]
-> start // ❌ This will be ignored [!code warning]
=== start === // ✅ This will be handled
My name is John // ✅ This will be handled
-> DONE // ✅ This will be handled