/
GameStructure.txt
102 lines (75 loc) · 4.21 KB
/
GameStructure.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
【AVGRuntime开发文档(仮)】
*******************
关于AVGRuntime
一套基于jQuery的AVG电子小说运行框架。你可以用它来制作简单的交互式小说,设置奇妙的剧情和多种结局。
请注意:因为这是基于网页的,所有的资源和运行状态都可以被控制,下载,修改的,用户可能会破坏游戏进行、获取到游戏素材或产生某些意想不到的效果。
*******************
总体的安排与吐槽
因为很多功能没有确定,【请务必不要使用特别费劲的逻辑】,方便以后添加功能。
- QAQ我觉得使用原型并不停地调戏this是一个糟糕的决定...而且我也不是能很好的理解其中的关系。
- 考虑改回普通的函数?对我来说原型有点接受不能...我尝尝迷失在this的不停变换里。
目前计划添加的功能:变量(Flag),存档(S/L)
- 总的来说,与读者交互的方式大概只有选项一种?
考虑添加的功能:背景和立绘,背景音乐和音效
- 这是什么鬼,AVG不是GAL啦!
*******************
游戏文件设置规范
为了地球的安危,为了爱与和平,为了框架开发以及后期文档编写不出现混乱。
请在这里记录下游戏文档的结构规范。
基础:JSON文件结构- 必须遵守
GameStructure.svg,可以看到结构图(不是最新的,有改动以这里为准)
游戏信息 - /info/
这里主要保存了游戏的基本设定信息(目前没什么卵用)
/info/name/
游戏名称
/info/describe/
游戏描述
/info/game_version/
游戏版本
/info/runtime_version/
AVGRuntime的版本
/info/first_block/
初始化时载入的对话块,如不存在,默认为index
对话块 - /block/
对话块是游戏情节构成的基本元素,通过在不同对话块之间的跳转来进行剧情。
通常来说,对话块中的内容是固定的,预先设置好的,并以选项跳转到另一个对话块或结局为结束。
对话块内的每一条为对话,不单独设置编号(参照JSON格式),运行时会按照其中的Action动作设定逐条向下显示
[name]为自己任意设定的名字。
/block/[name]/
对话块[name]
/block/[name]/[0]/
对话块[name]中的第一个对话[0]
/block/[name]/[0]/content/
对话内容
*如果为空则表名这句对话没有可显示的内容,仅用于显示特效选项等其他内容。
/block/[name]/[0]/action/
对话操作
①wait为显示继续箭头,用户继续后继续显示下一条对话。
②select为显示选项,具体选项设置在下面。
③(未实现)next为自动显示下一条对话,具体选项设置在下面。
④(未实现结局操作)end为结局,结束游戏。
⑤(?)toblock为跳转到对话块,直接到下一个对话块继续显示。
*如果对话块中最后一句话还要求显示下一句话,会报错“未封闭的对话块”,请保持对话块之间是一条完整的链接。
/block/[name]/[0]/effect/
显示特效
①akari,50%白色遮罩
②dark,背景黑色,文字白色
③flash,屏幕闪烁两次
*特效的具体信息,请参见下面特效部分,也可以自行添加特效或者调用外部其他函数。
/block/[name]/[0]/selector/[0]/
选项信息,action为select时才会有作用。里面包含N个选项,会依次显示。
/block/[name]/[0]/selector/[0]/content/
选项内容,显示在页面上
/block/[name]/[0]/selector/[0]/action/
选项动作,选择选项后的操作
①toblock,跳转到对话块。
*无意义的选项为啥要存在呢?请记得给每一个选项加上action。
变量 - /flag/
flag可以保存一些游戏执行中需要的变量,比如符合条件的时候才会显示的对话等。
它在游戏初始化时被设定,可以在游戏运行中随时进行修改和调用。
使用变量前必须创造它。修改并不存在的变量会导致错误,请务必注意。
虽然变量可以储存任何值,但是我们并不推荐储存文字,使用数字来表示的话,那真的是坠吼的。
/flag/[name]/name/
变量名
/flag/[name]/content/
变量内容