鋼鐵雄心4 GUI教程 P3窗口類型與圖像資源(二)


2.省份城市介紹
前端設(shè)計
還是老樣子,先構(gòu)思這個界面,我們需要在state面板,為一些特殊的state附著一個打開城市介紹的按鈕,點擊按鈕后打開一個城市介紹的頁面
先制作按鈕的窗口

這里的背景調(diào)用的圖像是quadTextureSprite,而不是之前的spritetype
spritetype多用于調(diào)用普通圖像元件(單一圖像或多幀圖像)
quadTextureSprite而多用于調(diào)用“實時更新”的圖像資源,例如游戲中的旗幟,材質(zhì)背景(稍后會提到),序列幀動畫

接下來講解鋼絲常見圖像資源注冊格式(.gfx文件)

spritetype:最常用也是最基本的儲存圖像元件,可以是單一圖片也可以是多幀圖片(多用于按鈕)
corneredTileSpriteType:紋理填充圖像,依據(jù)注冊圖像通過游戲生成對應(yīng)大小的紋理圖像,常用作背景。它的原理是確定邊界大小后,固定邊界,填充中心
以下將通過實例幫助理解:這個是即將使用的紋理材質(zhì),

將它注冊為:

在游戲中調(diào)用:


當(dāng)tilingCenter(中心填充)選yes時:

可以看見,當(dāng)我們需要創(chuàng)建大量不同規(guī)格窗口時,采用corneredTileSpriteType可以更高效地通過游戲生成不同大小的背景。

回到界面制作,將背景和窗口調(diào)整為按鈕大小

我們還需要第二個界面,點擊按鈕后打開的省份介紹,它大致由以下部分組成

然后構(gòu)建窗口

以下每項都在之前p詳細講過,這里不加贅述,注意文本框的文本直接使用的是scripted loc


后端編寫
我們需要提前將加裝地區(qū)介紹的state找到,并將它們的ID列出來,并且我們需要只有點選這些State時才會顯示按鈕并且打開對應(yīng)界面
下面將暫定5個城市:巴黎,倫敦,羅馬,維也納,柏林;
方便分配圖像和文本,我們將它們編號為1,2,3,4,5
通過一個數(shù)組將它們集中在一起

編寫scripted trigger

接下來需要編寫點擊按鈕時候的效果,通過一個變量代換得到目標(biāo)State的id然后用scripted localisation分配對應(yīng)圖像,在設(shè)計變量代換的時候需要下一點功夫


解讀一下這部分代碼:
首先將當(dāng)前選中State的id儲存為變量
由于我們填充數(shù)組是根據(jù)編號順序,因此我們可以通過比較當(dāng)前選中State與數(shù)組中每個值是否匹配,匹配則傳遞該State所在序號
由于數(shù)組首位默認是0,因此加1得到我們設(shè)定的編號
分配圖像時保持前半段不變,只更改末尾序號,即可實現(xiàn)不同State的圖像分配
強調(diào)一下,由于窗口類型為selected_state_context,THIS(默認作用域)為所選State,ROOT為操作界面的國家

以下為完整后端編寫,第一個關(guān)聯(lián)的是State附著按鈕,第二個關(guān)聯(lián)的是簡介界面

最后完成文本內(nèi)容,由于P2講過這里就不完全展示了



最后測試


這就結(jié)束了嗎
怎么可能,地圖那么大我怎么可能一個一個去點看那些state你加了介紹啊
因此我們還需要一個mapicon(地圖圖標(biāo)),把所有我們加過State view的區(qū)域標(biāo)注在地圖上

前端設(shè)計
十分簡單的一個窗口,它沒有背景只承接了地圖圖標(biāo)(buttonType)

后端編寫
我們需要讓它在地圖上顯示,因此使用一種截然不同的窗口類型

context_type(窗口類型)為:state_mapicon(省份地圖圖標(biāo))
mapmode(地圖模式)決定該窗口會在什么地圖模式下顯示,default為默認地圖模式
mapicon_targets為設(shè)置圖標(biāo)的省份,這里將目標(biāo)state設(shè)置為先前的數(shù)組
通過flag控制地圖圖標(biāo)顯示與否,點擊時執(zhí)行先前按鈕一樣的效果

最后將設(shè)置flag關(guān)聯(lián)在先前按鈕上,設(shè)置為右鍵點擊

進入游戲測試


P3的第二部分,第三部分其實剩下不多了不過因為分了三個案例講解就還是把最后一部分單獨拎出來吧