接上篇: https://www.v2ex.com/t/506437
在互动小说的阅读流程中,如果只支持选择分支 1,就前往分支 1,那未免就太单调了又不是 galgame。在当前分支路口,可以根据用户的过往选择来确定接下来的走向,具体的逻辑要交给作者去实现,框架只需提供能力即可。
暴露一个对象 ctx 贯穿阅读流程。ctx.S 上挂载读者的所有输入。作者在取得需要的内容后进行逻辑处理。
在阅读过程中,ctx 会变成这样:
S4
|
S3
|
S2
|
S1 ----ctx------
S1-S4 上挂着对应场景下的用户输入和其他数据。
想当然的,ctx.S 是数组。ctx.S = [S1,S2,S3,S4]。但是,经常,作者在某场景下挂载一个数据,在以后的场景下需要访问这个数据。如果不需要得知在哪里
挂载上的,那直接放在 ctx 本身就 ok。如果需要位置,那就放在 ctx.S 数组中。但是访问数据麻烦,ctx 臃肿。
ctx.S 如果不用数组,可以用 * 原型链 * 来代替。S1, S2, S3, S4 变成了继承关系解决了上面的痛点。访问数据方便的同时,保留了位置信息。
文件位置:lib/context.js
repo: # https://www.v2ex.com/t/506437
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.