标题：无双引擎
设计理念
无双引擎是一款游戏制作工具.它现阶段的目标是使用者不需要掌握任何编程语言或外语,就可以轻松地制作出电子小说式AVG游戏.
制作思路
无双引擎的目标是尽可能地降低电子小说的制作门槛,但这并不意味着制作电子小说从此就可以很轻松.一个时长为半小时的电子小说 
可能就会有上万字,多个分支情节以及结局.构造这样的非线性的故事情节显然不是容易的事情.而无双引擎的优势在于她可以使你 
快速试验自己的想法.只需要有个大概的背景设定,两三个角色,你就可以开始录入剧本并查看最终游戏效果.你可以在游戏尚未完成时 
就将她发布出来,也可以以续集的形式来发布后续版本.总之,”尽早发布”和”频繁发布”,是保证一个游戏项目生命力的绝佳手段. 
无双引擎自带有很多游戏示例，这些游戏示例的剧本都是很好的上手指南，可以通过修改现有剧本来快速地上手无双使用。
基础介绍
目录结构无双引擎的主要目录结构如下： 
根目录 
|__图片 
|__音乐 
|__游戏目录 
|__无双简介 
|__存档 
|__图片 
|__音乐 
|__剧本.txt 
|__设置.txt 
|__其他游戏 
|__存档 
|__图片 
|__音乐 
|__剧本.txt 
|__设置.txt 
|__使用指南.txt 
|__运行无双.exe 
主要的游戏相关数据文件都保存在游戏目录中。当游戏目录中只有一个游戏时，会直接启动这个游戏。在加载图片和音乐时， 
会先在游戏目录中的相应文件夹查找文件，查找不到才会去根目录下的图片音乐目录中去查找，仍然找不到的话会有错误提示。 
这样一来,”游戏目录”下的每个子目录都包含了一个游戏的所有数据,可以单独发布.如果玩过模拟器的话,可以把游戏目录下的每个 
子目录理解为一个ROM.由于我设想中的AVG游戏都比较短小,并且可能以续集的形式持续发布,那么采用这种目录结构可以减小 
每个游戏的下载量.假如把图片音乐都放到根目录的话,发布续集更是只需要发布剧本和设置这两个txt文件就可以了,更新很方便! 
每个游戏必须至少有 剧本.txt 和 设置.txt 这两个文件剧本结构剧本目前由初始化和剧情两部分构成。初始化部分初始化主要用来定义剧情中需要用到的图片和音乐文件，相当于给图片和音乐文件起一个”别名”， 
这样以后使用这些图片音乐文件时，就可以只使用别名。当需要替换资源文件时，也只需要修改 
初始化中相应的部分，剧情部分的别名无需改动，非常方便。 
初始化部分还可以定义一些”全局变量”,来控制游戏运行状态,相关文档内容会随着高级游戏系统 
如角色属性,背包系统的开发而逐步添加.剧情部分剧情部分由一个或多个标签组成.标签可以作为剧情的章节,场景的描述等等来理解.剧情的分支 
可以通过”分支菜单”,”如果”指令以及”全局变量”来控制.标签的末尾一般应该设置”跳转”指令, 
否则会继续执行下一个相邻的标签内容.剧本中可用的指令,请参考命令详解. 
剧本中至少需要有一个”开始”标签和一句台词 
剧本格式必须严格遵守缩进.推荐使用两个空格键来缩进.不能使用Tab键缩进. 
剧本中的控制类标点符号,如 : ” = == 等,必须用英文半角标点符号 
配置文件设置.txt 中可以设置游戏的基本属性，如游戏名称，窗口大小，字体，文本框背景图等等.查看设置.txt 说明可以得到更多信息. 
无双目前只支持窗口模式，并且不支持拉伸，所以背景图的分辨率应该和窗口大小保持一致。
命令详解
命令目前提供简体,繁体和英文三种版本,具体对照请参见简繁英命令对照表.下面主要针对简体版命令进行讲解.图形相关命令4.1.1 "图片"命令
格式: 图片 组名 标记名 = “图片链接” 
图片命令的主要作用是给一个图片打上标签,这样在后续剧本中就可以方便地显示该图片.如: 
图片 无双 高兴 = "无双_高兴.png" 其中 无双 可以理解为组,而 高兴 可以理解为具体动作.当显示组中的某个动作时,其他动作会自动隐藏,这样可以简化剧本的编写, 
因为通常我们都不需要两个 无双 显示在屏幕上. 
4.1.2 "显示"命令
格式: 显示 组名 标记名 位置 X坐标 Z坐标 
显示命令用来显示一个图片,用法如下: 
显示 无双 高兴 
显示 无双 高兴 左 50 
显示 无双 高兴 左 50 10 
显示 背景 街景 中 0 -10 图片的坐标定位只有三个,即 左 中 右.默认图片会在中间显示,如果想显示在左或右,可以再加一个X坐标(如50)来控制图片相对于 
窗口左边框或右边框的距离. 
如果还想控制图片的遮挡关系,可以再加一个Z坐标(如10).Z坐标大的图片会挡住Z坐标小的图片. 
如果Z坐标相同,后显示的图片会挡住先显示的图片. 
显示命令会记忆上次图片的坐标位置,这样不用反复输入左右和坐标,很方便! 
也就是说,假如你已经使用了 
显示 背景 街景 中 0 -10 来显示背景后,下次切换背景时,只需要输入 
显示 背景 侦探社 所有坐标信息都会自动使用上次的设定 
4.1.3 "说话"命令
由于说话在AVG中的比重相当大,所以它被设计成了默认指令,无需输入其他前缀,只需要双引号”“就可以,如: 
"大家好!我是无双!" 注意引号必须是半角英文标点符号 
1.如果想利用不同的字体或角色名来区分发言人,请参阅 角色定义详解 
2.引号内没有内容时文本框会自动隐藏,这个技巧可以用在需要全屏展示CG事件的地方. 
4.1.4 "隐藏"命令
隐藏命令用来隐藏一个图片,用法如下: 
隐藏 无双 隐藏命令不需要指明当前显示的具体动作,很方便! 
4.1.5 "清屏"命令
清屏命令可以用来清除已经绘制的所有图片.在它后面可以接一个图片描述,一般用来加载新背景图,如: 
清屏 背景 都市 相当于 
清屏 
显示 背景 都市 
4.1.6 "视频"命令
用来定义一段视频,定义好后就可以像图片一样来使用视频了.用法如下: 
视频 组名 标记名 视频宽度 视频高度 音量 循环/不循环 = '视频\\XT4.wmv' 
视频 心跳4 宣传片 236 136 0 循环 = '视频\\XT4.wmv' 其中音量范围为0至100.定义好后就可以用 
显示 心跳4 宣传片 来显示这段视频了. 
小窍门:可以用 @休息(视频长度) 来使视频播放完成后才继续游戏. 
4.1.7 "多图动画"命令
可以用多张图片反复播放来形成动画效果.用法如下: 
多图动画 组名 标记名 动画速度 循环/不循环 = 路径名 
多图动画 风车 低速转动 0.3 =  "其他\\风车" 然后就可以用 
显示 风车 低速转动 来显示刚才的多图动画了.显示顺序按路径中的文件名排序.音效相关命令4.2.1 "音乐"命令
音乐命令可以播放一个之前定义好的声音文件,如: 
@无双主题音乐 = "无双主题音乐.ogg" 
音乐 无双主题音乐 调用'音乐'会停止当前正在播放的音乐.音乐结束后会循环播放 
4.2.2 "音效"命令
音效命令和音乐命令的区别在于,音效不会循环,也不会打断当前正在播放的其他音乐音效语音,如: 
@敲门声 = "敲门声.ogg" 
音效 敲门声
4.2.3 "语音"命令
语音命令的特点在于,语音不会循环,也不会打断当前正在播放的其他音乐音效,但会打断当前正在播放的语音. 
这样快进的时候可以保证语音和文本的同步,不会出现文本已经更新时,新旧语音错误混合的情况. 
@台词2_1 = "台词2_1.ogg" 
语音 台词2_1 
"这句应该是台词2_1的文本内容" 4.2.4 "静音"命令
静音命令会停止当前播放的所有音乐控制逻辑相关命令4.3.1 "标签"命令
标签命令主要和跳到命令配合,来实现分支剧情.每个游戏中至少需要有一个”开始”标签 
标签 开始: 注意标签名后要加冒号,该标签下的后续剧情文本必须缩进 
4.3.2 "跳到"命令
跳到命令主要和标签命令配合,来实现分支剧情,如: 
跳到 结束 4.3.3 "分支菜单"命令
分支菜单命令是实现分支的主要手段,也是目前唯一给用户提供选项的方式,如: 
分支菜单: 
"这个是选项1,会显示在菜单上": 
"如果你选了选项1,就会显示这一行" 
"这个是选项2,也会显示在菜单上": 
"如果你选了选项2,就会显示这一行" 4.3.4 "如果"命令和单行Python命令
如果命令其实就是普通编程语言中的if,如果你觉得”如果”命令难以理解的话,完全可以不去用它. 
单行Python命令听起来更为深奥.如果在行首加了'@'符号的话,该行就变成了”单行Python指令”,如: 
@我困了 = True 
如果 我困了: 
跳到 睡觉 
显示 无双 熊猫眼 
"哈,再玩会儿~" 标签 睡觉: 
显示 无双 极度困倦 
"这下真该睡了..." 
"ZZZZZZZZZZZZZZZzzzzzzzzzzzz" 虽然@和Python对于制作电子小说来说并不是必须的,但为了实现复杂的游戏逻辑,掌握一些Python的使用也很有益处, 
可以参考无双自带教程”教程 - 邪恶的@”.
进阶教程
从这里开始,将完全是邪恶的Python的天下! 请确定你有足够的实力! 
好吧,开个玩笑,其实Python也是很简单的东西,尤其是中文化后"角色"的定义“角色”在无双引擎中,主要用来定义对话框中的各种外观效果.包括要显示的角色名,文本字体颜色,左边图,文本框底图等等内容. 
关于角色的详细定义,请参考角色定义详解界面制作请参阅 界面系统图片动画与特效利用很简单的指令,就可以在无双引擎中实现图片动画及各种效果,如负片,黑白化,模糊等等,详见图片动画与特效.关键帧动画关键帧动画是一个很强大的动画制作功能,利用它可以实现很多华丽的演出效果,例如烟雾特效,立绘眨眼说话,背景放大等待,具体请参见关键帧动画详解."好感度"及其他游戏功能利用强大的Python语言,可以很轻松地实现很多游戏功能.基于全局变量实现的”好感度”就是其中之一,具体请参见"好感度"及其他.API手册在界面制作中,大家已经接触到了一些无双提供的供Python代码调用的API,这里介绍其他API ,具体请参见API手册.
附录
简繁英命令对照表简体  繁体  英文  备注  
图片  图片  image  只能出现在初始化部分  
显示  显示  show  英文定坐标用left,right,center  
隐藏  隐藏  hide   
清屏  清屏  clear  简体繁体一致  
视频  视频  video   
多图动画  多图动画  multipage   
音乐  音乐  music   
音效  音效  sound  简体繁体一致  
语音  语音  speech   
静音  静音  mute   
初始化  初始化  init  简体繁体一致  
标签  标签  label   
跳到  跳到  jump  简体繁体一致  
分支菜单  分支菜单  menu  实现分支的主要手段  
如果  如果  if  简体繁体一致  
否则如果  否则如果  elif   
否则  否则  else   
代码  代码  python