Ink脚本语言学习笔记(小结)
在之前的四个部分中已经基本了解了Ink的语法和功能,这里就个人的理解作一下小结
一、基础内容
- 文本——分为默认/注释/提醒/标签文本,如果没有经过特殊标记,所有默认文本会显示在输出内容中
- 选项——分为用*号标记的一次性选项和用+标记的可重复使用的选项(粘性选择)
2.1. 除了方括号内的内容都会输出
2.2. 选项中的内容是*号到]号之间的内容
2.3. 多个标记符号并列能够组成多选结构
2.4. 通过使用*-> ->DONE可以设置默认选项,是没有选项的选项,当选项全部消失后,会自动进入默认选项(最好设置为粘性选择) - 节点——以两个或以上等号开始,后面接名称部分,其中名称部分至少需要一个字母并且不能有空格,而后面的等号可写可不写,例如=== first_node ===
3.1. 节点通过->符号进行转移
3.2. 节点通过-> DONE或者-> END进行结束 - 转移——节点和节点之间通过转移(->)进行连接
4.1. 句子之间通过<>可以粘合,但是尽可能不要大量使用
4.2. 选项也可以通过转移跳转到——且如果是转移到该选项,就相当于该选项被选择了 - 分支流程——通过对文本、选项、节点、转移进行组合就能得到分支流程
- 次级节点——以单个=开始,名称部分规范与节点一样
6.1. 次级节点的命名要具备节点内唯一性
6.2. 第一个次级节点是默认节点
6.3. 本地转移不需要父节点名称;而在节点外时使用需要父节点名称 - Include——通过Include将文本拆分到多个文件中
7.1. Include永远应该在顶部
7.2. 分割文件并不会影响命名空间 - 可变文字——将文字写在{…}大括号内,元素之间通过|垂直分割线进行分隔
8.1. 分为顺序(默认)、循环(&)、单次(!)和随机(~),在第一个大括号后进行标记
8.2. 以上形式可嵌套
二、缝合
- 焦点——通过使用焦点记号(-)可以将文本流汇聚在一起,减少对于转移、节点等的使用,保证故事流的线性和可阅读性
1.1. 主要的作用就是用选项将故事的路径分开,但是最后又让他们重新组合在一起 - 故事流嵌套——通过使用多个焦点符号(-)和选项符号(*)可以实现多级结构
2.1. 可嵌套任意多个级别 - 标签——通过使用圆括号可以进行标记(label)
3.1. 能够通过之前的决策来影响后面的内容,同时也能让结构更清晰
3.2. 仅作用于当前区块(节点/次级节点)
3.3. 所有的选项都可以被标记
三、变量和逻辑
- 全局变量——从故事的任何位置都可以读取到的数据
1.1. 全局变量可以通过VAR关键字在任何地方定义,并给予他们一个初始值,这个值定义了他们是一个什么类型的数据
1.2. 可以使用与之前显示可变文字一样,通过{}来输出和使用所需要的变量
1.3. 转移语句也是一种值,它可以被储存、更改、转移
1.4. 全局变量对外部可见 - 逻辑——也就是代码部分,通常在Ink中显示的都是默认的文本形式,因此我们需要使用~符号标记来进行逻辑上的工作
2.1. Ink支持基本的四则运算以及取余算法,如果需要更加复杂的操作可以编写函数(可以使用递归),或者调用外部函数代码
2.2. Ink中目前只有三种基本查询:相等(==)、不相等(!=)、子字符串(?) - 条件块——与常规if/else等效的功能,使用方式见这里
3.1. 条件块也可以用于控制故事内容以及逻辑,甚至可以将选项也放在条件块中,但是为了避免语法和结构混乱,条件块中的选项必须使用跳转而不能使用焦点
3.2. 多行块是基于条件块拓展的系统,通过关键字进行使用,分别为:顺序(stopping)、循环(cycle)、单次(once)和随机(shuffle),主要用于输出大段文字 - 临时变量——用于临时计算的变量,通过temp关键字进行使用
4.1. 当离开了变量所处的节点之后,变量就会被销毁
4.2. 临时变量一种特别有用的形式就是给任何节点和次级节点提供参数,例如== result(x) == - 函数——在节点上使用参数意味着它们基本上就是函数了,通过function关键字进行标记,返回值通过~ return进行使用
5.1. 函数具备以下属性
① 不包括次级节点
② 不能使用转移或提供选项
③ 可以调用其他函数
④ 可以输出内容
⑤ 可以返回任意类型的值
⑥ 可以安全的递归
5.2. 函数不一定需要返回值
5.3. 函数也可以在文本内被使用
5.4. 函数参数可以是引用类型,通过ref关键字进行使用 - 常数——不解释
四、进阶故事流控制
- 通道——通过一种新的转移将功能集成到语言中,这种转移的功能类似于子路线,语法是一个箭头-> 转移 ->
1.1. 通道本身使用->->语句来结束通道
1.2. 要注意,因为编译器不会在运行时检查隧道是否确实以->->语句结尾,因此需要仔细确认通道的语法是否正确 - 线程——作家可以将故事“分叉”到不同的部分,以涵盖更多玩家可能的动作
2.1. 个人觉得不好用,正常情况下可能永远用不到线程,一旦涉及到线程,工程本身一定会变得复杂!因此推荐别用
2.2. 线程可以将多个部分拼接在一起
以后还想起什么会再编辑
Ink脚本语言学习笔记(小结)相关推荐
- Ink脚本语言学习笔记(四)
目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(三) 四.进阶故事流控制(Advanced Flow ...
- Ink脚本语言学习笔记(二)
目前想要基于Ink脚本语言和Unity新的UIToolkit做一套对话系统,本文对Ink脚本语言的使用方式做一下介绍和总结 Ink脚本语言学习笔记(一) 二.缝合(Weave) 目前没想好怎么翻译这个 ...
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
C语言学习笔记---001C语言的介绍,编译过程原理,工具等 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技术交流平台:cre.i ...
- c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体
枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...
- R语言学习笔记(1~3)
R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...
- shell脚本编程学习笔记8(XDL)——流程控制和循环
shell脚本编程学习笔记8--流程控制和循环 1,if语句 1,框架 1,单分支:if [条件判断式] ;thenprogramfiif [条件判断式]thenprogramfi注意:if语句使用f ...
- shell脚本编程学习笔记1(xdl)——shell基础与Bash基本功能()
shell脚本编程学习笔记1--shell基础与Bash基本功能 1,简介: 1,Shell就是一个命令行解释器,用以连接输入设别和内核. 2,Shell是解 释执行的脚本语言,在Shell中可以直接 ...
- R语言学习笔记——入门篇:第一章-R语言介绍
R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...
- Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数
Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数 Polyworks采用了脚本语言作为二次开发的工具,因此语言格式上非常规范和统一.其中一个重要的特点就是,几乎所有的对象都 ...
最新文章
- 2022-2028年全球与中国闪光棉市场研究及前瞻分析报告
- java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...
- 解决数据库读写分离(转)
- Microsoft Azure部署MYSQL-MMM(3)配置MYSQL-MMM
- [转]GetProcAddress函数
- 网站被黑的原因真实案例
- springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)
- java事务不生效场景_讲一下,我最近帮忙面试的几个“高级”JAVA,真的心累
- [css] 说说你对css的will-change属性的理解,它有什么作用呢?
- Lighttpd 的安装配置(web服务器软件)
- 【综合】JS跨域方案JSONP与CORS跨域
- 现在的计算机电源都要经过,电脑待机后必须关闭电源才能开启
- MBProgressHUD的基本使用
- 介绍计算机的英文文章,计算机方面的英语资料,介绍一些计算机的英语短文,有兴趣的可以看...
- 实现前后端分离的心得
- SQL Server 代码颜色
- 计算机sci多少页,sci论文一般多少页
- python中unicode编码的url如何正确解码
- 知识产权助力中国经济高质量发展广受认可
- 解决微信小程序wx:if使用不了函数,WXS使用方法以及防踩坑
热门文章
- Apple Configurator 2使用教程: 修复或恢复搭载 Apple M1芯片的 Mac!
- (Frontend Newbie) Web三要素(一)
- HTML字体颜色对照表
- 关于递归删除链表结点时为什么不会出现断链问题
- 突然讨厌做前端,讨厌代码_如何安全清洁讨厌的游戏控制器
- 美国访问学者生活之行-公交及考驾照
- 【产品】项目管理的五个过程和九大知识领域
- uniapp APPH5端获取地理位置信息(百度地图高德地图)
- 计算机技术对英语课堂,信息技术在英语课堂中的运用
- php jquery ajax九宫格抽奖,jQuery九宫格抽奖