酒石酸菌
本帖最后由 酒石酸菌 于 2018-2-10 16:11 编辑


Custom Main Menu 简单介绍


1.简介

Custom Main Menu 是一个能够自定义主界面的模组,需要配合 Resource Loader 模组使用。采用json语法写的配置文件,可以热加载出自定义的样式。使用方式颇有点像CSS样表。许多著名的国外整合包无一例外都采用了这个模组。效果非常好,这里拿几个作者设计的样式给大家看看吧。(作者美工水平不咋行啊)










2.文件结构

配置文件为游戏主文件夹下 config\CustomMainMenu\mainmenu.json 文件;

所有的图片文件地址都在游戏主文件夹下 resources\mainmenu 文件夹下。

目前这货好像还不支持 UFT-8 编码,所以还是别用中文了吧【还看着干什么,快去github轰炸作者吧,这作者是我见过最偷懒的作者】。

修改好了之后,在主界面按下 ctrl+r 键即可重载配置。

配置文件结构一般如下

  1. {
  2. "images": {
  3.         "图片一": {
  4.         },
  5.         "图片二": {
  6.         }
  7.     },

  8. "buttons": {
  9.         "按钮一": {      
  10.         },
  11.         "按钮二": {      
  12.         }
  13.     },

  14. "labels": {
  15.         "文本一": {      
  16.         },
  17.         "文本一": {      
  18.         }
  19.     },

  20. "other":{
  21.         "background":{         
  22.         }
  23.     }
  24. }
复制代码

3.背景的添加

背景分为动态背景和静态背景。

    (1)静态背景:
  1. {
  2. "other":{
  3.         "background":{
  4.             "image":"mainmenu:001.png",
  5.             "mode":"fill"
  6.         }
  7.     }
  8. }
复制代码

如案例所示,背景属于"other"分区,有两个参数可选:


(2)动态背景
  1. {
  2. "other":{
  3.     "background":{
  4.             "image" : "",
  5.             "slideshow":{
  6.                 "images" : ["mainmenu:001.png","mainmenu:002.png","mainmenu:003.png"],
  7.                 "displayDuration" : 100,
  8.                 "fadeDuration" : 40
  9.             }
  10.         }
  11.     }
  12. }
复制代码


4. 文字的添加
        网络加载文字:
  1. {
  2. "labels": {
  3.     "changelog":{
  4.           "text":"web:http://pastebin.com/raw.php?i=MmSCr6zV",
  5.           "posX" : 2,
  6.           "posY" : 0,
  7.           "color" : -1,
  8.           "alignment" : "left_center"
  9.         }
  10.     }
  11. }
复制代码

        硬编码文字加载【不支持中文哦,会乱码的】
  1. {
  2. "labels": {
  3.       "mojang": {
  4.           "text" : "Copyright Mojang AB. Do not distribute!",
  5.           "posX" : -197,
  6.           "posY" : -10,
  7.           "color" : -1,
  8.           "alignment" : "bottom_right"
  9.         }
  10.     }
  11. }
复制代码


        除此之外还有几个属性可以选择添加:


     推荐两个使用的颜色代码网站:

5.图片的添加
    图片只能用png格式。
  1. {
  2.     "images":{
  3.         "picture":{
  4.             "image":"mainmenu:001.png",
  5.             "posX":-120,
  6.             "posY":-120,
  7.             "width":240,
  8.             "height":240,
  9.             "alignment":"center"
  10.         }
  11.     }
  12. }
复制代码


    除此之外还可以添加:

    推荐一个好用的,制作minecraft样式文字图标的网站:textcraft

6.按钮的添加
  1. {
  2. "buttons":{
  3.         "singleplayer":{
  4.             "text":"menu.singleplayer",
  5.             "texture":"mainmenu:shortbutton.png",
  6.             "posX":-100,
  7.             "posY":-8,
  8.             "width":98,
  9.             "height":20,
  10.             "imageWidth":98,
  11.             "imageHeight":20,
  12.             "alignment":"center",
  13.             "action":{
  14.                 "type":"openGui",
  15.                 "gui":"singleplayer"
  16.             }
  17.         },
  18.         "ftbForums":{
  19.             "text":"FTB Forums",
  20.             "texture":"mainmenu:shortbutton.png",
  21.             "posX":2,
  22.             "posY":58,
  23.             "width":98,
  24.             "height":20,
  25.             "imageWidth":98,
  26.             "imageHeight":20,
  27.             "alignment":"center",
  28.             "action":{
  29.                 "type":"openLink",
  30.                 "link":"https://forum.feed-the-beast.com/forum/"
  31.             }
  32.         }
  33.     }
  34. }
复制代码



    除此之外还可以添加这几个参数

    当然,还有我们最重要的action参数,action下必须要有type参数,可以传入openLink, openGui, quit, refresh, connectToServer, openFolder。


zjxx
听说是支持ANSI编码??

http://www.mcbbs.net/thread-733677-1-1.html
(猜猜那看到的)
只不过怎么全是CMM的教程

酒石酸菌
本帖最后由 酒石酸菌 于 2018-2-10 16:15 编辑

这是我去年夏天写的东西,前两天 4z 做了个 Markdown 转 BBCode 的工具,我就把它搬过来了。如果和别人有重复的,那我删掉吧 _(:з」∠)_
至于编码问题,其实这个属于作者的疏忽。在没有特定限定编码的情况下,会优先使用系统编码,导致了在 Windows 下直接 UTF-8 编码会乱码,如果在 Unix 系统下 UTF-8 书写就不会乱码。


AmethystSEA
感谢楼主的教程

MC_kemi
大佬的教程还是那么详细,不过希望更新一下最新版的,还希望有空能出一些这类mod的教程,比如FTBLib、FTBUtilities这类的

lliiooll
中文乱码只是需要转码,转为ANSI码就可以了

酒石酸菌
lliiooll 发表于 2018-5-5 15:22
中文乱码只是需要转码,转为ANSI码就可以了

然后  Linux 用户和 MacOS 用户发出了 MMP 的声音

AmethystSEA
gui背景可以支持高清图片吗,我放高像素的就显示到脚边了,挺难受的

酒石酸菌
弦弓音 发表于 2018-5-5 17:21
gui背景可以支持高清图片吗,我放高像素的就显示到脚边了,挺难受的

可以啊,显示边角是你没有设定显示方式吧

AmethystSEA
酒石酸菌 发表于 2018-5-7 12:57
可以啊,显示边角是你没有设定显示方式吧

怎么设置显示方式啊,按钮和标题我都需要设置高清的

酒石酸菌
弦弓音 发表于 2018-5-7 14:07
怎么设置显示方式啊,按钮和标题我都需要设置高清的

fill:适应,保证图片长宽比前提下,尽可能铺满屏幕。会适当裁剪图片。
stretch:拉伸,尽可能铺满屏幕,如果不合适会强制拉伸图片。
center:居中,不改变图片大小和比例,依据屏幕大小裁剪图片。
tile:平铺,重复图片铺满屏幕。

13050002
挺详细的 多学习学习

AmethystSEA

这样也不可以啊。。。

AmethystSEA
四个显示方式都尝试了,但就是在屏幕不同的位置显示边角

酒石酸菌
弦弓音 发表于 2018-5-7 22:06
四个显示方式都尝试了,但就是在屏幕不同的位置显示边角

emmmm,那就不清楚了

AmethystSEA
本帖最后由 弦弓音 于 2018-5-7 23:57 编辑

我现在改成了点击空白区域进入游戏,那个
hoverColor:鼠标指针悬浮上去的文字颜色
请问要填什么,RGB码和&都没有用,就是鼠标悬浮于gui然后text变黄我想改成亮白

AmethystSEA
没什么问题了,谢谢

酒石酸菌
弦弓音 发表于 2018-5-7 23:25
我现在改成了点击空白区域进入游戏,那个
hoverColor:鼠标指针悬浮上去的文字颜色
请问要填什么,RGB码和& ...

十进制的RGB码

某狮
谢谢楼主的细心教程!解决了我许多天的困惑

guting
大佬的教程真详细

kuaile412
大佬请问怎么让文字能够显示在线人数,还有调用语言文件中的key加载文字具体该怎么做呢?

w0998w
kuaile412 发表于 2018-8-8 19:04
大佬请问怎么让文字能够显示在线人数,还有调用语言文件中的key加载文字具体该怎么做呢? ...

我也是想问这个的

GC_YKE
其实CMM支持GBK编码的……不用UTF-8

酒石酸菌
本帖最后由 酒石酸菌 于 2019-1-19 00:26 编辑
GC_YKE 发表于 2019-1-18 22:43
其实CMM支持GBK编码的……不用UTF-8

是这样的,java 的 readStream 方法在默认情况是使用系统编码,这意味着在简体中文的 win 系统上使用的是 GB 编码,但是在 unix 系统,比如 MacOS 之类的上面则是 UTF-8 编码读取。

所以这一块为了兼容各个操作系统,应当甚至必须强制限定 UTF-8 编码,但是很遗憾,作者很明显没有意识到这一点,因为欧美作者常用的英文字符大多限制于 ACSII 编码的那些字符,无论是他们用 win 系统(大多为 ISO8859-1 编码)还是 unix 系统(用 UTF-8 编码),在 ASCII 字符内都是互相兼容的,所以他们没有意识到这个问题。

实际上无论是 Minecraft 官方还是 Forge 都无一例外对于所有文件读取限定了 utf-8 编码。

综上所述,并非是 CMM 支持 GB 编码,而是作者犯错误未能支持所致。



heguo
这个怎么改啊,就是客户端左下角的哪团字

kemonohito
推推推推推推推推推推推推推推推推推

花生小孩子
楼主你好,请问能搬运你的教程在我的搬运此mod的贴子里吗?

酒石酸菌
花生小孩子 发表于 2019-5-23 20:11
楼主你好,请问能搬运你的教程在我的搬运此mod的贴子里吗?

随便用,没有问题的

花生小孩子
酒石酸菌 发表于 2019-5-28 23:14
随便用,没有问题的

好的谢谢

Yumouren_
为什么我找不到存放图片的文件夹呢??大佬求指点

MooNight_mi
看到人家服务器里的自定义界面觉得特别的炫酷,奈何自己不会弄,但是有了这个教程,我觉得我也能做到!
真是太感谢楼主了!!!

3255699296
卧槽,大佬虽然写的很详细,但我没看懂加按钮的,我太难了

tlesa
怎么转为ansi编码啊
qwq.....

Loginzz
嘿嘿嘿,能不能搞成红警那样的界面  哈哈哈哈哈

sunjood
支持一下!

啦啦啦1q2w3e
好像和其他有 自带主界面的Mod 冲突

LPE
求问这个能不能修改游戏菜单,就是那个ESC出来的菜单

这里小雨.
那个textcraft是哪个国家的啊.加速器都不知道挂哪里

至尊毁灭神
为什么我加了无法使用材质包

fangfufeng
感谢楼主大大很有帮助

lyqhhh
如何设置一个按钮的背景在鼠标移动过去后变成另一个

2231003533
感谢楼主

xqx145236
这个教程写的好,一些cmm详细地方都写到了

1005057343
很详细,感谢分享

快乐happy
这未必也太详细了吧

1119339953
非常详细 非常感谢

假飘piao
感谢分享感谢感谢

傲普斯顿
大佬  为什么图片材质错误了呀  改哪种模式都不行   还对图片大小有要求?我这张是1.38M的

wznaw
可以啊!

Gay_panda
请问动态背景显示为黑紫方块可能是什么原因
静态背景可以正常显示图片

下一页 最后一页