这里介绍一些krkr的语法规范,具体的命令含义及用法以后再叙述

一:kag语法及基本概念

  KAG使用的剧本语言为KAG Script,文件扩展名为.ks

  脚本内的文字除  注释,  命令 ,  段落标签,   等内容外,一律被当作   剧本文字  进行显示处理。

  每个标签都可能有若干属性,也可能没有属性,属性用于精确控制指令的行为。

1:标记命令

命令的格式为:

[命令名    属性1 = 值1     属性2  =  值2]

例如:

[bg file=图片1] 这里设置了一张背景图片 [r][I]

2:行命令

  行命令一般单独占一行,用于较长的指令

命令的格式为:

@命令名   属性1 = 值1   属性2 = 值2...

这种语法格式要求一条指令   单独   占一行。

例如:

@bg file=图1
这里也设置了一张背景图片[r][I]

与标记命令的执行结果是一样的

3:段落标签

  段落标签单独占一行,代表一个段落/章节的开始。

  分支选项     剧本跳跃     进度的存取都以段落标签为标志,剧本跳跃时,就只能跳跃到指定的段落标签开始。(学过html的小伙伴可能会比较熟悉这个,与利用a标签id属性实现跳转类似)

命令的格式为:

 *标签名|显示名

标签名   是标签的内部名称,建议使用  简单但不重复的    英文数字组合。

显示名   是显示在存档界面等地方的名称,可以使用    较复杂   的中文名。

例如:

*ch01|第一章
这是第一章。[I][r]

4:注释

  以   ;   符号开始,从分号到该行结尾的所有内容将被忽略

  注释主要用于写入开发者的备忘。代码说明等内容。

例如:

 *ch01|第一章
这是第一章。[I][r] ; 这是注释1
;这是注释2

开发过程中的所有代码都要严格按照这些规范来进行。

二:关于渐变的类型、参数和使用

渐变效果是ADV制作中最经常用到的效果。ADV游戏经常包含图像的切换。如果毫无过渡的更换图像,效果一般会显得非常糟糕。因而,淡入、淡出等图像效果几乎是每一个ADV游戏必然会使用的。加入这些效果,可以使得图像的切换更加平滑,让游戏感觉更加精细。

KAG中,淡入、淡出这些在一定的时间内改变图像的功能都使用统一的渐变效果来实现。KAGeXpress的背景切换等效果,也被设计为可以调用渐变效果。使用的渐变效果的类型在KAGeXpress中都可以由method属性指定。

KAG包含了多种的渐变方式。吉里吉里内核自嵌了3种类型的渐变,此外通过外部插件,还可以增加新的渐变效果。

所有调用的渐变的指令都需要通过time属性指定时间,对于KAGeXpress的图像指令,未指定时间的渐变视作要求新的图像直接出现。

以下的图例中,A为渐变前的图像(下面称作原图像),B为用来取代原图像的目标图像(下面称作新图像)。

1:crossfade

最简单、最常用的渐变类型。要渐变的部分渐渐从原图像变为新图像

无特别的属性需要指定。

2:universal

一种独特的渐变类型。可以按照使用者的要求,按照任意顺序与方式渐变整个区域。

使用时,必须提供一个规则文件,指定渐变的规则。该文件必须是灰阶的图像。

请看以下的样图。

 

系统将按照这个规则文件的灰度,从对应规则文件黑色的部分渐渐渐变到对应白色部分。

对于上述的规则文件,系统将从上到下(对应规则文件中从黑到白)将屏幕上的A渐变为B。

此外,这种类型的渐变可以设定渐变区域属性(vague属性),指定过渡区域(也就是转换中,同时显示出原图像和新图像的区域)的大小。

  渐变效果不明显

 这是vague=1的场合。
   有渐变重叠效果出现
这是vague=64的场合。
value值越大,渐变效果越明显,渐变区域越大

指定不同vague值产生的差别可以参看上图。

对于KAGeXpress,默认的vague值为64。

下面是universal渐变属性详细列表:

 universal渐变的使用的属性列表  
属性名称 是否必须 说明  
rule

指定决定通用渐变的轨迹的,规则文件的名称。

该文件必须是灰度图像数据。

系统将从该图像中黑色部分所对应的原图部分开始渐变,渐渐按照顺序开始处理图像中白色的部分。

 
vague 决定过渡区域,也就是同时进行转换的区域的大小。

3:scroll

scroll类型的渐变,如同其字面意思一样,就是让新图像从外面移动进入原图像的区域。

新的图像可以任意选择从上、下、左、右四个方向中的任意一个进入,这个效果可以通过from属性指定。

本节讲解scroll时使用的样图,进入方向都为下,也就是从下方进入屏幕。

此外,实际上scroll渐变的类型还包括三种,由参数stay控制。

这是stay=stayfore的场合。

这是stay=stayback的场合

这是stay=nostay的场合。

三种不同的效果如上图所示。

首先,stay=stayfore时,原图像将原地不动,而新图像从外向里移动。当进入方向是从下方进入时,看起来是如同下图这样的。

stay=stayback时,原图像将从进入方向的反方向被抽走,而露出没有移动的新图像。

stay=nostay时,原图像和新图像将同时向同一方向移动,直到新图像取代旧图像。

下面是scroll渐变属性详细列表:

scroll渐变的使用的属性列表  
属性名称 是否必须 说明  
stay

stay=nostay时,原图像和新图像将按相同速度向同一方向移动,直到新图像代替旧图像。

stay=stayfore时,原图像将不会移动,新图像会自外移动进来并覆盖元图像。

stay=stayback时,新图像将不会移动,原图像会被抽走,然后露出新图像。

 
from 指定为left、right、top、bottom,分别可以让新图像从左、右、上、下方向卷入屏幕。  

KRKR基础篇(二)的更多相关文章

  1. krkr基础篇(一)

    krkr基础篇是我根据krkr的官方教程总结而来 推荐代替记事本的工具:editplus,点我下载 激活码:Vovan 3AG46-JJ48E-CEACC-8E6EW-ECUAW 一:创建新工程 1: ...

  2. php基础篇-二维数组排序 array_multisort

    原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...

  3. JavaScript笔记基础篇(二)

    基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt ...

  4. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  5. NIO相关基础篇二

    转载请注明原创出处,谢谢! 上篇NIO相关基础篇一,主要介绍了一些基本的概念以及缓冲区(Buffer)和通道(Channel),本篇继续NIO相关话题内容,主要就是文件锁.以及比较关键的Selecto ...

  6. docker+k8s基础篇二

    Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...

  7. Python基础篇(二)_基本数据类型

    Python基础篇——基本数据类型 数字类型:整数类型.浮点数类型.复数类型 整数类型:4种进制表示形式:十进制.二进制.八进制.十六进制,默认采用十进制,其他进制需要增加引导符号 进制种类 引导符号 ...

  8. node基础篇二:模块、路由、全局变量课堂(持续)

    今天继续更新node基础篇,今天主要内容是模块.路由和全局变量. 模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例 ...

  9. Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较

    说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...

  10. C语言----输入输出语句(基础篇二)

    今天整理一下自己的基础篇输入和输出的理解,自己没有研究系统输入和输出函数,以后有时间在去深究,之前在别人的博客里面看到这么一句话分享给大家,“学习就是一个不断抄袭,模仿,练习和创新的一个过程”. 使用 ...

随机推荐

  1. 关于UWB技术:DecaWave公司的DW1000芯片资料

    关于人在隧道工作时都需要准确的精确度确定精准的位置.DecaWave公司的DW1000芯片,对定位上的精确度更是再适合不过了.符合IEEE802.15.4-2011超宽带标准.按照数据手册上应该最小误 ...

  2. 解决dpdk中出现IOMMU not found的问题

    问题 在使用VFIO前,需要在BIOS打开VT-x和VT-d,想把一个PCIe网卡透传到虚拟机中,发现虚拟机启动失败,提示IOMMU没有找到. 输入以下命令确定vt-d开启 dmesg | grep ...

  3. .NET获取IIS7.0及以上版本托管服务信息

    近期写了个扫描IIS托管站点然后定期注册到Consul的小工具,随意网上拷贝了个帮助类,搞完本机测试没问题,扔到服务器发现硕大的一个异常.. System.Runtime.InteropService ...

  4. C#利用反射动态创建对象 带参数的构造函数和String类型 (转载)

    最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好,特别是当构造函数带参数的时候.MSDN上给出的例子十分复杂,网上的 ...

  5. DateFormat多线程使用问题

    reference DateFormat in a Multithreading Environment

  6. 转:Sql Server中清空所有数据表中的记录

    如果要删除数据表中所有数据只要遍历一下数据库再删除就可以了,清除所有数据我们可以使用搜索出所有表名,构造为一条SQL语句进行清除了,这里我一一给各位同学介绍.   使用sql删除数据库中所有表是不难的 ...

  7. iframe空白

    优酷网页上复制的通用代码用来播放视频,浏览器和谷歌模拟器正常,但是发布后手机上打开一片空白,一直以为是苹果手机不支持iframe,最后发现是由于iframe播放链接是http的,而我们网页是https ...

  8. TopJUI Combobox onSelect 事件失效BUG

    版本:2.2.8 onChange : function(b, c) 两个参数:当前选择后在Combobox中显示的数据,实际是textField:另一个是改变前的数据 onSelect : func ...

  9. gulp之几个常用插件介绍

    今天给大家分享一篇gulp几款插件的使用 以下代码用到得模块加载‘ const gulp=require("gulp"); const gulpSass=require(" ...

  10. 在阿里云的CentOS 6.5 上面安装 timidity++ 和 ffmpeg(含libmp3lame) 实现命令行将midi转换为mp3

    首先使用yum安装需要的组件 yum install -y automake autoconf libtool gcc gcc-c++ yasm yasm-devel 然后从sourceforge下载 ...