概述

自定义加载界面。

该篇会涉及到的模组:

自定义加载画面(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 的注释。

如果你可以很好的编写它的话,这在自己回看,以及在游戏内修改,都会很有用。