在之前的四个部分中已经基本了解了Ink的语法和功能,这里就个人的理解作一下小结

一、基础内容

  1. 文本——分为默认/注释/提醒/标签文本,如果没有经过特殊标记,所有默认文本会显示在输出内容中
  2. 选项——分为用*号标记的一次性选项用+标记的可重复使用的选项(粘性选择)
    2.1. 除了方括号内的内容都会输出
    2.2. 选项中的内容是*号到]号之间的内容
    2.3. 多个标记符号并列能够组成多选结构
    2.4. 通过使用*-> ->DONE可以设置默认选项,是没有选项的选项,当选项全部消失后,会自动进入默认选项(最好设置为粘性选择
  3. 节点——以两个或以上等号开始,后面接名称部分,其中名称部分至少需要一个字母并且不能有空格,而后面的等号可写可不写,例如=== first_node ===
    3.1. 节点通过->符号进行转移
    3.2. 节点通过-> DONE或者-> END进行结束
  4. 转移——节点和节点之间通过转移(->)进行连接
    4.1. 句子之间通过<>可以粘合,但是尽可能不要大量使用
    4.2. 选项也可以通过转移跳转到——且如果是转移到该选项,就相当于该选项被选择了
  5. 分支流程——通过对文本、选项、节点、转移进行组合就能得到分支流程
  6. 次级节点——以单个=开始,名称部分规范与节点一样
    6.1. 次级节点的命名要具备节点内唯一性
    6.2. 第一个次级节点是默认节点
    6.3. 本地转移不需要父节点名称;而在节点外时使用需要父节点名称
  7. Include——通过Include将文本拆分到多个文件中
    7.1. Include永远应该在顶部
    7.2. 分割文件并不会影响命名空间
  8. 可变文字——将文字写在{…}大括号内,元素之间通过|垂直分割线进行分隔
    8.1. 分为顺序(默认)、循环(&)、单次(!)和随机(~),在第一个大括号后进行标记
    8.2. 以上形式可嵌套

二、缝合

  1. 焦点——通过使用焦点记号(-)可以将文本流汇聚在一起,减少对于转移、节点等的使用,保证故事流的线性和可阅读性
    1.1. 主要的作用就是用选项将故事的路径分开,但是最后又让他们重新组合在一起
  2. 故事流嵌套——通过使用多个焦点符号(-)和选项符号(*)可以实现多级结构
    2.1. 可嵌套任意多个级别
  3. 标签——通过使用圆括号可以进行标记(label)
    3.1. 能够通过之前的决策来影响后面的内容,同时也能让结构更清晰
    3.2. 仅作用于当前区块(节点/次级节点)
    3.3. 所有的选项都可以被标记

三、变量和逻辑

  1. 全局变量——从故事的任何位置都可以读取到的数据
    1.1. 全局变量可以通过VAR关键字在任何地方定义,并给予他们一个初始值,这个值定义了他们是一个什么类型的数据
    1.2. 可以使用与之前显示可变文字一样,通过{}来输出和使用所需要的变量
    1.3. 转移语句也是一种值,它可以被储存、更改、转移
    1.4. 全局变量对外部可见
  2. 逻辑——也就是代码部分,通常在Ink中显示的都是默认的文本形式,因此我们需要使用~符号标记来进行逻辑上的工作
    2.1. Ink支持基本的四则运算以及取余算法,如果需要更加复杂的操作可以编写函数(可以使用递归),或者调用外部函数代码
    2.2. Ink中目前只有三种基本查询:相等(==)、不相等(!=)、子字符串(?)
  3. 条件块——与常规if/else等效的功能,使用方式见这里
    3.1. 条件块也可以用于控制故事内容以及逻辑,甚至可以将选项也放在条件块中,但是为了避免语法和结构混乱,条件块中的选项必须使用跳转而不能使用焦点
    3.2. 多行块是基于条件块拓展的系统,通过关键字进行使用,分别为:顺序(stopping)、循环(cycle)、单次(once)和随机(shuffle),主要用于输出大段文字
  4. 临时变量——用于临时计算的变量,通过temp关键字进行使用
    4.1. 当离开了变量所处的节点之后,变量就会被销毁
    4.2. 临时变量一种特别有用的形式就是给任何节点和次级节点提供参数,例如== result(x) ==
  5. 函数——在节点上使用参数意味着它们基本上就是函数了,通过function关键字进行标记,返回值通过~ return进行使用
    5.1. 函数具备以下属性
    ① 不包括次级节点
    ② 不能使用转移或提供选项
    ③ 可以调用其他函数
    ④ 可以输出内容
    ⑤ 可以返回任意类型的值
    ⑥ 可以安全的递归
    5.2. 函数不一定需要返回值
    5.3. 函数也可以在文本内被使用
    5.4. 函数参数可以是引用类型,通过ref关键字进行使用
  6. 常数——不解释

四、进阶故事流控制

  1. 通道——通过一种新的转移将功能集成到语言中,这种转移的功能类似于子路线,语法是一个箭头-> 转移 ->
    1.1. 通道本身使用->->语句来结束通道
    1.2. 要注意,因为编译器不会在运行时检查隧道是否确实以->->语句结尾,因此需要仔细确认通道的语法是否正确
  2. 线程——作家可以将故事“分叉”到不同的部分,以涵盖更多玩家可能的动作
    2.1. 个人觉得不好用,正常情况下可能永远用不到线程,一旦涉及到线程,工程本身一定会变得复杂!因此推荐别用
    2.2. 线程可以将多个部分拼接在一起

以后还想起什么会再编辑

Ink脚本语言学习笔记(小结)相关推荐

  1. Ink脚本语言学习笔记(四)

    目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(三) 四.进阶故事流控制(Advanced Flow ...

  2. Ink脚本语言学习笔记(二)

    目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(一) 二.缝合(Weave) 目前没想好怎么翻译这个 ...

  3. C语言学习笔记---001C语言的介绍,编译过程原理,工具等

    C语言学习笔记---001C语言的介绍,编译过程原理,工具等 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技术交流平台:cre.i ...

  4. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  5. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  6. shell脚本编程学习笔记8(XDL)——流程控制和循环

    shell脚本编程学习笔记8--流程控制和循环 1,if语句 1,框架 1,单分支:if [条件判断式] ;thenprogramfiif [条件判断式]thenprogramfi注意:if语句使用f ...

  7. shell脚本编程学习笔记1(xdl)——shell基础与Bash基本功能()

    shell脚本编程学习笔记1--shell基础与Bash基本功能 1,简介: 1,Shell就是一个命令行解释器,用以连接输入设别和内核. 2,Shell是解 释执行的脚本语言,在Shell中可以直接 ...

  8. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  9. Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数

    Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数 Polyworks采用了脚本语言作为二次开发的工具,因此语言格式上非常规范和统一.其中一个重要的特点就是,几乎所有的对象都 ...

最新文章

  1. 2022-2028年全球与中国闪光棉市场研究及前瞻分析报告
  2. java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...
  3. 解决数据库读写分离(转)
  4. Microsoft Azure部署MYSQL-MMM(3)配置MYSQL-MMM
  5. [转]GetProcAddress函数
  6. 网站被黑的原因真实案例
  7. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)
  8. java事务不生效场景_讲一下,我最近帮忙面试的几个“高级”JAVA,真的心累
  9. [css] 说说你对css的will-change属性的理解,它有什么作用呢?
  10. Lighttpd 的安装配置(web服务器软件)
  11. 【综合】JS跨域方案JSONP与CORS跨域
  12. 现在的计算机电源都要经过,电脑待机后必须关闭电源才能开启
  13. MBProgressHUD的基本使用
  14. 介绍计算机的英文文章,计算机方面的英语资料,介绍一些计算机的英语短文,有兴趣的可以看...
  15. 实现前后端分离的心得
  16. SQL Server 代码颜色
  17. 计算机sci多少页,sci论文一般多少页
  18. python中unicode编码的url如何正确解码
  19. 知识产权助力中国经济高质量发展广受认可
  20. 解决微信小程序wx:if使用不了函数,WXS使用方法以及防踩坑

热门文章

  1. Apple Configurator 2使用教程: 修复或恢复搭载 Apple M1芯片的 Mac!
  2. (Frontend Newbie) Web三要素(一)
  3. HTML字体颜色对照表
  4. 关于递归删除链表结点时为什么不会出现断链问题
  5. 突然讨厌做前端,讨厌代码_如何安全清洁讨厌的游戏控制器
  6. 美国访问学者生活之行-公交及考驾照
  7. 【产品】项目管理的五个过程和九大知识领域
  8. uniapp APPH5端获取地理位置信息(百度地图高德地图)
  9. 计算机技术对英语课堂,信息技术在英语课堂中的运用
  10. php jquery ajax九宫格抽奖,jQuery九宫格抽奖