最近看了 mv shelter,心里迟迟不能平静。
痛苦,孤寂,绝望..
好的剧情真的可以震撼心灵!突然有了强烈的创作欲望!
身为程序员,当然选择在命令行上跳舞,命令行上的幻想世界...互动小说!
于是先 lu 出来了一个框架: cmd-alive(灵感源自 date a live)
npm i -g alive
// 默认打开 demo。自动从上次进度开始。
alive
命令:
参考 demo(文件位置 /example/shelter)
两种文件是必须的 .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
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.