互动小说框架分享
发布于 5 年前 作者 derekchuank 1603 次浏览 来自 分享

最近看了 mv shelter,心里迟迟不能平静。 痛苦,孤寂,绝望… 好的剧情真的可以震撼心灵!突然有了强烈的创作欲望! 身为程序员,当然选择在命令行上跳舞,命令行上的幻想世界…互动小说!

于是先 lu 出来了一个框架: cmd-alive

Usage

  npm i -g alive

// 默认打开 demo。自动从上次进度开始。

  alive

命令:

  • save: 保存进度
  • restart: 重新开始

面向小说作者( opitional )

两种文件是必须的 .js, .ca.

  • .ca:小说内容,每一节要有 label 标识. 必须包括start, end label

  • .js:流程控制,js 函数, 函数名和返回值必须是 label。可以访问全局对象 ctx,用来获取当前用户输入,过去用户输入,挂载状态等等,辅助实现 game 逻辑.

示例 : .ca:

$start: 
A nice day.

choices:

a. go to 2a.
b. go to A LOOP.


$2a: 
Then?
No choice.

$loop: 
You can't excape.

$end: 
Think you.

.js

function $start() {
  if (ctx.cur === "b") {
    return $loop;
  }
  if (ctx.cur == "a") {
    return $2a;
  }
  return $start;
}

function $2a() {
  return $end;
}

function $loop() {
  return $start;
}
function $end() {
  // dumb
}

参考 demo(文件位置 /example/shelter)

repo: https://github.com/derekchuank/cmd-alive

回到顶部