简单的gui制作一般不需要特别使用滑轮,但是当我们想让一个界面有更多丰富的内容,就必须要使用滑轮了,这一p会专门详细介绍如何在ui中添加滑轮
首先在介绍滑轮之前,我们需要对containerWindowType(窗口)有一个进一步的理解,
(资料图片仅供参考)
先让我们创建一个只有背景的窗口,并且在其中插入一张图片
与先前不同,这一次我们不直接加入icontype,而是把它加入在新建窗口的子窗口中
注意看,这里子窗口使用了一种不同的size写法
后端编写直接略过,我们只需要让它可见即可
可以看见,我们试图加入的图片将整个子窗口占满了,换句话说,子窗口的大小变更为其中元件宽度和长度的最大值(100%),但由于主窗口没有填写clipping = no,默认会将超过主窗口大小的部分裁切掉
让我们换一种方式,将这个icon直接添加在主窗口下(不使用子窗口承接),然后将主窗口长宽改为100%
哦天哪,CleverCrafty大佬占据了整个屏幕!
由此我们看出:
主窗口的size如果以百分数表示,将会变为占据屏幕比例大小,(长宽100%即为整个屏幕)
子窗口下,size以百分数表示则为所有下属元件的长宽总和
了解这些之后,我们试着做一些更改
首先将主窗口调整到一个合适的大小(不能占据过多的屏幕空间),将子窗口宽度和长度改为100%(以使得图像完整显示)
留意clipping,尽管默认为yes但是这里专门写出来强调一下,我们不希望子窗口中的图片超过子窗口,因此必须裁掉多余部分
另外有关margin(窗口边界)的一些解释:
窗口大小类似于画布大小,图层大小即为实际元件的大小
当我们设置margin后,类似于人为地,将画布多扩大一部分距离,使得内部的元件,即使
x =0/y = 0,也会距离窗口边界有一段距离,当我们设置size值为100%后,窗口大小会变化为:在内部元件最大长宽的基础上,加上四边的margin值
类似这样:
进入游戏,可以看见这次CleverCrafty大佬的画像可以正常显示了
进入正题:CleverCrafty大佬的画像由于过大,窗口进行了裁剪,但是这不符合我们需要,我们想让她显示完全,就必须使用滑轮
我们注意到,尽管使用了clipping = yes,但是实际上,图片的大小依旧是原来的大小
即,clipping = yes是对窗口的裁切,超出规定窗口大小的部分隐藏显示,内部的元件依然是它们原来的大小,而滑轮原理就是令内部元件移动,使得它们超出窗口的部分进入显示范围
那么我们可以在这个被裁切的窗口下,添加两个滑轮:
进入游戏,可以看见滑轮添加成功了
文本框添加滑轮
改为直接在instantTextBoxType下添加
特别注意如果给文本框添加滑轮,请勿使用orientation/origo,会令滑轮添加失败!
最后,意识形态滑轮为例,作为这次的结尾吧
不同于直接引用原版滑轮,使用extendedScrollbarType可以完成个性化的滑轮注册
(一般除非特殊情况其实用不到,你完全可以直接用P社赐你的,但是TNO用了所以我觉得我最好还是讲一下)
素材准备
既然是讲解TNO那肯定就用它的素材就好啦
前端设计
首先找到原版意识形态所属的界面,countrypoliticsview.gui,把它复制到你的mod目录下
注意,有别于先前的“元件”,extendedScrollbarType直接写在guiTypes下(与
containerWindowType同一级)且应该写在文件开头位置(以防在你引用自定义滑轮时还没有建立成功)
由此可以看见P社滑轮的原理,通过点击按钮或者滚轮上下滚动,令滑轮增加或者减少,当值为最小值(默认为0)时在一端,为最大值(默认100)时在另一端
然后我们需要在gui文件中,找到排列意识形态的窗口,在这个窗口下添加滑轮
可能会有小伙伴问,咦我搜索“ideology”找到的是另一个啊
这里由于还没有讲解gridbox,粗略理解:带“ideology”的窗口是被列举项,而真正承接这个列举内容的窗口是gridbox所属的窗口
还记得上文讲解的吗?clipping = yes令该窗口有裁剪图像/元件,background使得滑轮能正常生成,而黄框则用的是我们自定义的TNO风味滑轮(你可以换成原版“right_vertical_slider”,没有什么实际区别)
最后进入游戏调整坐标让它摆放得“好看”一点
此图为调整过坐标的版本
后端编写
什么,之前不是说原版ui无法触及后端吗?
是这样的,但是因为只加了滑轮却没有加意识形态,需要copy一份KR的意识形态添加到原版
然后进入游戏测试
关于P社滑轮补充说明:
它其实是半智能滑轮,智能在于出现被窗口裁剪的图像/元件时,滑轮会自动生成(只要你在gui里写了);但是如果没有(即所有元件都能在规定大小的窗口中正常显示时),它就不会生成了
总算结束又一个坑了,下一篇应该就是gridbox的详细介绍了,尽请期待
X 关闭
Copyright © 2015-2022 华中餐饮网版权所有 备案号:京ICP备12018864号-26 联系邮箱:2 913 236 @qq.com