钢铁雄心4 GUI教程 P2图像与文本变换

上一P教程着重介绍了如何新建一个页面,这一期将会讲解Scripted gui中图像和文本变化的方法
新建窗口中所引用的图像文件都是固定的,但是我们需要gui在不同时候使用不同的文本,图像来完成“交互”,这需要我们改进后端代码

下面以TNO著名的“超事件”为例子。
1.前端页面
首先让我们构思一下这个界面,它会在一些重要的新闻触发后展现出来,给全球的国家。
当然我们不可能给所有“超事件”都单独写一个窗口分开触发,我们只需要改变这个窗口中的图像和文本内容,让它和不同的新闻事件对应就可以了

首先注册相应图像文件

然后创建一个超事件的窗口

注意红框位置,由于超事件框可移动,但是我们想让每次触发不同超事件总是出现在屏幕中央,而不是拖动后的位置,所以我们加入一个show_position代替原来的position
引入了show_position的同时我们加入了一个出现和消失的动画(show/hide_animation_type),但由于动画的时间(animation_time)仅为1,非常短,因此几乎看不见进入,消失的动画
alwaystransparent则是设置元件是否可以重叠下的元件,默认为no,意味着如果一个icon堆叠在button上方,我们就无法点击icon下的button
补充上按钮,和文本框


2.后端编写

展现窗口依旧使用的是flag,为了根据新闻而更换超事件照片,使用properties来分配图像元件(button,icon)的图片
注意,这里的image使用的是scripted localisation(动态文本)
scripted gui实现变化的主要原理,就是通过scripted localisation在不同条件下,变换不同的图像注册名称,来实现ui的变化

人为地,我们将预计制作的超事件编号,用变量代表,1号超事件对应的全局变量(global.supernews_event_id)为1,2号对应为2,以此类推



文本内容同理,区别在于,文本内容需要在本地化的文件中直接使用scripted localisation

红框部分是ui文本框的文本内容,让ui的文本框使用对应的scripted localisation
黄框部分是scripted localisation不同情况下对应的不同文本内容
最后我们需要通过新闻设置变量来呈现这个“超事件”


进入游戏测试,大功告成

至此,有关图像文本变化内容结束