世界今头条!钢铁雄心4 GUI教程 P6滑轮
来源:哔哩哔哩     时间:2023-02-08 01:58:33

简单的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的详细介绍了,尽请期待

标签: 意识形态 窗口大小 进入游戏