[有json基础即可] MCJSON UI 奇技淫巧 2 - 底部对话栏
本帖最后由 我是李君子 于 2024-2-5 16:00 编辑效果展示
想实现这样的对话栏效果
那么你一定要学习这个技巧
准备
• 原版的hud_screen.json一份
• 一个文本编辑器
技巧教学
打开自己包里的ui/hud_screen.json
找到hud_title_text ui元素里的 title子元素
然后我们看到这个元素是文字(label)元素,而不是我们的框panel元素或stack_panel啊
很多人呢遇到这里就不做了,因为要改元素种类会很麻烦( 其实还好 但是怕遇到bug )
不过呢,这是错误的,学过json的肯定都知道
Json只传递值,而处理在代码上
我们的json不会对代码进行处理
所以我们就猜想我们的这个文字元素也可以被赋予子属性( controls )
那么我们就创建一个controls数组
"controls" : []
Ok,然后我们来创建他的背景元素
我们都知道我们的json ui没有background-color,那怎么办呢
mojang的做法是拿图片当背景
然后来吧
创建一个名为bg_cb对象
{
"bg_cb": {
"type": "image",//图片类型
"texture": "textures/ui/Black",//黑底
"layer": 0,//图层为0
"fill": true,//填充
"size": ,//大小
"alpha": 0.3//透明度
}
}
然后我们就走了这样一个背景
然后我们来逐个分析
layer表示图层,我们让他在第0层,这样就不会在文字的上面显示
fill填充
size为什么要用具体数字呢
因为不用数字的话他会继承母元素title文本的大小
就会出问题
alpha表示透明度,不多赘述
然后我们会发现一个问题
我们的标题太大了
怎么办呢
把title里的font_size属性改为
font_size: 100,//这个属性不能是数字类型,所以使用100他会自动继承默认大小
然后去阴影把shadow属性改为false或者删掉
shadow: false
然后就ok了
然后就实现了刚才的效果
然后不要忘记加上绑定
然后效果就ok啦
你可以在试着输入以下指令
/titleraw @a title { "rawtext": [ { "text": "标题\nHello world"} ] }进行测试
结语
So easy and beautiful
学会了吗
[贴吧_滑稽][贴吧_滑稽][贴吧_滑稽] 我用不着,但我膜拜大佬! 66666666666 [贴吧_滑稽][贴吧_滑稽][贴吧_滑稽][贴吧_滑稽][贴吧_滑稽] [贴吧_呵呵]
页: [1]