轻松构建丰富的叙事体验
无需学习新语言,没有固定模板——只需您的代码、您的风格和您的故事。
- TypeScript 优先设计
- 使用完整的类型安全和编辑器支持编写故事。直接在代码中定义场景、对话和逻辑——无需自定义脚本语言。
- 完全可定制的界面
- 自定义每个元素以匹配您的愿景。从对话框到动画,您对展示和交互拥有完全控制权。
- 轻量级且可扩展
- 设计简洁高效,NarraLeaf 随您的项目一起扩展。无论您是在制作短篇视觉小说还是复杂的分支故事,框架都保持快速和可维护性。
- 基于组件的架构
- 使用可重用的 React 组件构建每个场景、角色和选择。就像构建任何现代 Web 应用一样自定义布局和行为。
为什么选择 TypeScript
自信构建
TypeScript 通过类型安全、IDE 支持和与 CI/CD 流程的无缝集成,为更智能的开发提供动力。
- 类型安全的故事编写 :
- 利用 TypeScript 的智能自动完成和错误检查功能,编写更可靠、更易维护的故事代码。
- 强大的逻辑与真实生态系统 :
- 使用 JavaScript/TypeScript 的完整生态系统构建条件逻辑、可重用组件和动态叙事。
- 优雅且直观的语法 :
- 体验设计精美的语法,使故事编写感觉自然且表达力强,同时保持专业级的能力。
- CI/CD 和工具链就绪 :
- 与现代开发工作流程集成——版本控制、测试和部署都自然地融入您的流程中。
scene.action([
scene.background.char("/bg_park.png", new Dissolve(500)),
"阳光温柔地透过树叶洒落。",
"已经早上9点了,不知为何我今天醒来感觉比平时更精神。",
Emma.show({ duration: 500 })
.darken(0.3, 500, "easeIn")
.char("emma_happy.png"),
E`早上好,Alex!`,
"一个女孩站在我身边,一如既往地开朗。",
"我不知道她是怎么做到的,但Emma似乎总是心情很好。",
A`Emma,我告诉过你多少次${b("不要", "#Ff0000")}不打招呼就偷偷加入我的晨间散步?`,
E`你门没关——我怎么能忍住不来呢?`,
Menu.prompt("我该怎么办?")
.choose("想去吃早餐吗?", [
E`真的吗?你终于邀请我出去了?那我们走吧!`,
])
.choose("太早了。我们在这里休息一下吧。", [
E`唉,你早上总是这么无聊。`,
E`不过好吧,我们坐会儿。其实我带了点东西想给你看。`,
]),
]);