最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【HZ/ICMod開發(fā)教程】2 - UI PART1

2021-06-25 23:01 作者:SugarBreeze_微風(fēng)  | 我要投稿

Try hard.

-Zheka Smirnov

本文的部分名詞與描述或許與別處有出入以至于錯(cuò)誤,歡迎在評(píng)論區(qū)指出

相較于原版MC,IC的UI系統(tǒng)并不有多復(fù)雜,可簡(jiǎn)單地用下圖概括

ICMod UI

盡管這張圖看似過(guò)于簡(jiǎn)略,但事實(shí)的確如此??焖僬莆誙I的基本控件等內(nèi)容并不困難,但難點(diǎn)是如何用它們拼湊出美觀且實(shí)用的用戶界面

PS:本文不會(huì)講到每一個(gè)控件及其函數(shù),更詳細(xì)的內(nèi)容可見官方文檔

首先在IC中,用戶界面的控件的大小和單位都是使用同一的unit單位,1unit = 窗口寬度/1000

UI資源

UI所使用到的貼圖存放于構(gòu)筑文件(build.config)所指定的gui類型的資源文件夾,在使用時(shí)只需要輸入文件名即可(不包含后綴與文件夾)

除此之外,還有:

color: 顏色,即Android的Color類,可使用android.graphics.Color.rgb(r, g, b)等自定義顏色

font: 字體,包含三個(gè)屬性,{size: 文本大小, color: 文本顏色, shadow: 文本陰影},其中文本陰影為范圍[0, 1]的浮點(diǎn)數(shù)

frame: 邊框,一般使用大小為16x16的貼圖,在使用時(shí)會(huì)被自動(dòng)拉伸至所需大小

Drawing

Drawing,顧名思義就是在界面中進(jìn)行繪制,在UI的描述對(duì)象中Drawing為一個(gè)包含繪制指令的數(shù)組

描述對(duì)象:用于設(shè)定UI以及在UI打開時(shí)對(duì)其進(jìn)行動(dòng)態(tài)修改

常用標(biāo)準(zhǔn)指令如下:

?

PS:custom drawing的canvas為Android的Canvas類

Elements

Elements,指UI中的控件,與Drawing不同的是Elements在描述對(duì)象里為一個(gè)包含各控件的對(duì)象

Elements中的每一個(gè)控件都有其唯一且獨(dú)特的名稱,即每一個(gè)對(duì)象都有其唯一的建

每一個(gè)元素都有以下基本屬性:

此處控件點(diǎn)擊對(duì)象指一個(gè)包含短時(shí)點(diǎn)擊事件和長(zhǎng)時(shí)點(diǎn)擊事件函數(shù)的對(duì)象:

同樣地,常用元素如下:

除以上元素之外,還有Scroll,Switch,Tab等元素未被提及,但用法大同小異,建議自行按照官方文檔進(jìn)行嘗試,這樣才是最有效率的學(xué)習(xí)方法

direction參數(shù):

0 - 朝右 1 - 朝上 2 - 朝左 3 - 朝下



在簡(jiǎn)要介紹完Drawing和Elments后,在介紹重頭戲Window之前先來(lái)補(bǔ)充一點(diǎn)其他內(nèi)容

自定義參數(shù)

用于修改Window的一些默認(rèn)參數(shù),如下:

?

UI.getContext()

該函數(shù)用于獲取Android UI線程的上下文,以便調(diào)用Android API來(lái)操控界面控件

例如本專欄封面就是調(diào)用Android API的簡(jiǎn)單示例

UI.getScreenHeight()

獲取以u(píng)nit為單位的屏幕高度,與之相同的還有UI.getScreenRelativeHeight()

ElementSet

元素集合

WindowLocation

窗口位置及大小,使用unit作為單位,詳細(xì)參數(shù)見官方文檔

Style

窗口風(fēng)格,有CLASSIC和DEFAULT兩種

Slot,F(xiàn)ullSlot

窗口中的物品格對(duì)象,Slot包含物品的id、特殊值、數(shù)量和額外數(shù)據(jù),F(xiàn)ullSlot則在其基礎(chǔ)上添加了如drop、set等方法

Window

在官方文檔中,窗口(Window)有如下幾個(gè)類:

  • StandardWindow

  • StandartWindow

  • TabbedWindow

  • Window

  • WindowGroup

在這里將暫先略講StandartWindow,Window和WindowGroup

StandartWindow

定義為UI.StandartWindow類,以一個(gè)描述對(duì)象定義界面

描述對(duì)象格式(摘自BigFish和方法放寒假翻譯的官方Wiki第8-2節(jié)):

StandartWindow是適用性最高的窗口,在多人游戲中表現(xiàn)優(yōu)于Window,但盡管如此絕對(duì)布局仍是其一大缺點(diǎn),在實(shí)際使用時(shí)需要考慮到不同的屏幕尺寸會(huì)造成的控件偏移。因此,盡量將控件放置在屏幕內(nèi)部區(qū)域

Window

相較于StandartWindow,Window的優(yōu)點(diǎn)在于其靈活性,與默認(rèn)為方塊互動(dòng)界面的StandartWindow不同,Window可以通過(guò)修改WindowLocation來(lái)顯示在游戲界面上的任意位置,且可以通過(guò)適當(dāng)修改padding值來(lái)盡可能避免控件偏移。

Window默認(rèn)沒有關(guān)閉按鈕和玩家背包欄,在使用時(shí)需要按需自行添加

WindowGroup

StandartWindow和Window都是單個(gè)窗口,如果需要復(fù)雜的界面那么用多個(gè)窗口組合無(wú)疑是最最好的選擇,將一個(gè)復(fù)雜窗口分為多個(gè)小窗口也可以提高調(diào)試效率。

WindowGroup的主要作用就是將多個(gè)Window整合在一起,將其組合布局在一起,例如現(xiàn)在的工作臺(tái)界面就是一個(gè)包含3個(gè)Window的WindowGroup

Hierarchic UI庫(kù)

HierarchicUI由Zheka開發(fā),用于以json來(lái)定義分層式的UI,可以方便的創(chuàng)建絕對(duì)布局和線性布局,屆時(shí)json會(huì)被解析為WindowGroup

此外,該庫(kù)還可以定義視圖布局并且對(duì)于一個(gè)視圖可以靈活地嵌入到其他界面,并且基于它創(chuàng)建繼承其全部屬性的子視圖,無(wú)疑讓W(xué)indowGroup展示美觀的復(fù)雜界面更加容易。

本文到此就暫先結(jié)束了,不過(guò)因?yàn)楸疚牟]有介紹關(guān)于UI的各種函數(shù)用法(主要是懶),所以僅憑本文是不能完全掌握UI的,對(duì)于開發(fā)過(guò)程中的疑問(wèn)歡迎私信我或到國(guó)內(nèi)ICMod開發(fā)者交流區(qū)詢問(wèn)795440679,隨均不能保證及時(shí)解答,但會(huì)盡可能幫助你的

正如開頭引用Zheka的名言一樣,努力嘗試才能取得成效。

勇敢zheka


【HZ/ICMod開發(fā)教程】2 - UI PART1的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
芒康县| 武清区| 玉林市| 辰溪县| 柘荣县| 乐安县| 芦山县| 大英县| 云阳县| 炉霍县| 略阳县| 金昌市| 昂仁县| 泸州市| 巴南区| 濮阳市| 阜阳市| 湖南省| 伊金霍洛旗| 广安市| 水富县| 潼南县| 毕节市| 康马县| 富阳市| 永福县| 杨浦区| 闸北区| 永兴县| 威海市| 澎湖县| 长顺县| 镇沅| 侯马市| 克拉玛依市| 肃南| 汉源县| 汶川县| 青川县| 徐闻县| 布拖县|