LogoPixi’VN

Integración del lenguaje ink

Crea narrativas interactivas usando ink, un lenguaje de scripting diseñado para historias ramificadas, integrado con Pixi’VN.

Pixi’VN te permite escribir narrativas interactivas utilizando ink, un lenguaje de scripting diseñado para historias ramificadas.

¿Qué es ink? ink es un lenguaje de scripting sencillo para historias interactivas, utilizado en juegos como 80 Days, Heaven's Vault y Sorcery! Puedes obtener más información en el sitio web oficial de ink.

La integración ink + Pixi’VN utiliza inkjs y PixiVNJson para analizar el código *ink*** ** y generar JSON que Pixi’VN puede interpretar. Esto significa que JavaScript/TypeScript y ink comparten el mismo almacenamiento y canvas, y puedes ejecutar knots (o labels) de ink desde JavaScript/TypeScript y viceversa. Obtienes lo mejor de ambos mundos: escribir la narración en ink y usar JavaScript/TypeScript para minijuegos o animaciones avanzadas.

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?

Escribir la narrativa directamente en JavaScript/TypeScript puede ser lento y complejo, especialmente para principiantes. ink es mucho más fácil de aprender y escribir.

Los nuevos desarrolladores pueden empezar con una plantilla de ink y luego aprender gradualmente JavaScript/TypeScript para funciones avanzadas.

Instalación

Templates

¿Empiezas un nuevo proyecto Pixi’VN? Usa una plantilla que ya incluya ink.

Para instalar el paquete ink en un proyecto JavaScript existente, utiliza uno de los siguientes comandos:

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

Inicialización

Después de la instalación, utiliza importInkText() para cargar tu script *ink*** **:

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

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

importInkText([inkText, ...])

A continuación, puedes ejecutar un ink knot (o label) usando las funciones de Pixi’VN:

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

narration.call(`start`, {})

Próximas funciones

Estas funciones están en desarrollo.

Muestra tu interés dando “me gusta” o comentando en los issues.

Sintaxis de ink ignorada por Pixi’VN

Parte de la sintaxis de ink es ignorada por Pixi’VN. Puedes usarla en tu script *ink*** ** (por ejemplo, para pruebas en el editor Inky), pero Pixi’VN la ignorará.

INCLUDE

INCLUDE es una instrucción de ink para incluir otro archivo ink. En Pixi’VN debes usar importInkText() para cargar varios archivos ink, por lo que INCLUDE se ignora.

Narración fuera de los knots

La narración fuera de los knots (o labels) se ignora, excepto las 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