概述
自定义加载界面。
该篇会涉及到的模组:
自定义加载画面(Custom Loading Screen)(原名为BetterLoadingScreen|版本1.7.10-1.3.10)
注意
这里不会教你 JSON 怎么写,你应该看一篇专业的教程。
示例会用 # String 来表示一些东西。也会表示注释及可选字段。你应该将 # 或 # String 删去并找到对应的内容。
开始
配置文件在 config/BetterLoadingScreen 下。
其中有四个文件,分别为:
config.cfg
images.json
preset one.json
preset two.json
后两个均为示例配置文件,无作用。
Config 文件内容
在 config.cfg 文件下
开始
# Configuration file
general {
# If this is true, it will conect to drone.io to get a changelog [default: true]
B:connectExternally=true
S:font=textures/font/ascii.png
# Play a sound after minecraft has finished starting up [default: true]
B:playSound=true
S:sound=random.levelup
# Whether or not to use minecraft's display to show the progress. This looks better, but there is a possibilty of not being compatible, so if you do have any strange crash reports or compatability issues, try setting this to false [default: true]
B:useMinecraft=true
}
解释
4 - 6 行为连接一个名叫 drone.io (挂了)的网站。并用 ASCII 文字显示。
8 - 10 行为在加载完成时播放声音,注册名是 random.levelup ,即获得经验:升级。可为界面进入提醒(Ding)的替代。
也可换为在 sound.json 文件中的注册声音。也就是说,可换为资源包定义的声音。
12、13 行为是否使用原版加载界面。设置为是,就会加载 image.json 来显示自定义的加载界面。
若设置为否,则会由 Java 来生成一个进度条。
图像(image.json)自定义
若要使此文件工作,请将前述中的 12、13行设为是。
开始
[
{
"resourceLocation": "textures/gui/title/mojang.png",
"positionType": "CENTER",
"type": "STATIC",
"texture": {
"x": 0,
"y": 0,
"width": 256,
"height": 256
},
"position": {
"x": 0,
"y": 0,
"width": 256,
"height": 256
},
"comment": "None"
},
{
"resourceLocation": "textures/font/ascii.png",
"positionType": "CENTER",
"type": "DYNAMIC_TEXT_STATUS",
"position": {
"x": 0,
"y": -30,
"width": 0,
"height": 0
},
"colour": "000000",
"comment": ""
},
{
"resourceLocation": "textures/font/ascii.png",
"positionType": "CENTER",
"type": "DYNAMIC_TEXT_PERCENTAGE",
"position": {
"x": 0,
"y": -40,
"width": 0,
"height": 0
},
"colour": "000000",
"comment": ""
},
{
"resourceLocation": "betterloadingscreen:textures/progressBars.png",
"positionType": "CENTER",
"type": "STATIC",
"texture": {
"x": 0,
"y": 10,
"width": 182,
"height": 5
},
"position": {
"x": 0,
"y": -50,
"width": 182,
"height": 5
},
"comment": "None"
},
{
"resourceLocation": "betterloadingscreen:textures/progressBars.png",
"positionType": "CENTER",
"type": "DYNAMIC_PERCENTAGE",
"texture": {
"x": 0,
"y": 15,
"width": 182,
"height": 5
},
"position": {
"x": 0,
"y": -50,
"width": 182,
"height": 5
},
"comment": "None"
},
{
"type": "CLEAR_COLOUR",
"colour": "ffffff",
"comment": ""
}
]
一个正常的能工作的元素(在加载界面显示的)均应包含如下内容。
{
"resourceLocation": "# RESOURSEPATH",
"positionType": "# POSITION",
"type": "# TYPE",
# "texture": {
# "x": # TEXTURE_X_NUM,
# "y": # TEXTURE_X_NUM,
# "width": # TEXTURE_WIDTH_NUM,
# "height": # TEXTURE_HRIGHT_NUM
# },
# "colour": "# COLOR",
"position": {
"x": # POSITION_X_NUM,
"y": # POSITION_Y_NUM,
"width": # POSITION_WIDTH_NUM,
"height": # POSITION_HEIGHT_NUM
}
}
解释
类型 | 意思 |
---|---|
RESOURSEPATH | 图像文件位置。 对于原版文件,只需写出图像文件位置。(textures/xxx/xxx.png) 对于模组文件,则需在前面加入一个模组图像文件位置。(modid:textures/xxx/xxx.png) |
POSITION | 该元素位置。 其位置所需词段将会在下方写出。见【1】 |
TYPE | 渲染类型。 其类型所需词段将会在下方写出。见【2】 |
TEXTURES_X_NUM | 图像左上角的 x 和 y 坐标。 |
TEXTURES_Y_NUM | |
POSITION_X_NUM | 其位置 [定位点(在左上角)位置] 。 定位点的 x 和 y 坐标。 或者说,定位点的偏移坐标。 |
POSITION_Y_NUM | |
TEXTURE_WIDTH_NUM | 图片选择的长度和宽度。 [即从(0,0)至(TEXTURE_WIDTH_NUM,TEXTURE_HRIGHT_NUM)] |
TEXTURE_HRIGHT_NUM | |
POSITION_WIDTH_NUM | 渲染出的宽度和长度。 |
POSITION_HEIGHT_NUM | |
COLOR | 颜色,要求为 16 进制方式。 |
【1】位置
先为 y 坐标后为 x 坐标。
定义 y 坐标的字段为:上(TOP),中(CENTER),下(BOTTOM)。
定义 x 坐标的字段为:左(LEFT),中(CENTER),右(RIGHT)。
若居于正中请只使用一个 CENTER,而非 CENTER_CENTER。
【2】类型
用途中有一个下标1便是只能用一次。
类型字段 | 用途 |
---|---|
STATIC | 静态图片。适宜做一些元素。 |
DYNAMIC_TEXT_STATUS | 文字动态显示加载进度。1 |
DYNAMIC_TEXT_PERCENTAGE | 文字动态显示加载百分比。1 |
DYNAMIC_PERCENTAGE | 加载自定义进度条。1 |
CLEARCOLOR | 纯色填充背景。详见下一章杂项。1 |
STATIC_TEXT | 自定义静态文本。 |
杂项
自定义纯色填充背景
一个 image.json 应该有一个纯色填充。
其示例如下:
{
"type": "CLEAR_COLOUR",
"colour": "ffffff"
}
即为 type 处填写 CLEAR_COLOR ,并将颜色(colour)设为 16 进制的颜色。
comment 的妙用
comment 值在此处可当作一个可以在游戏内修改的可对应且带 Tag 的注释。
如果你可以很好的编写它的话,这在自己回看,以及在游戏内修改,都会很有用。