MyGui原本設定可以載入中文字,但是需要一次全部載入,會有一次全部載入過久的缺點。
於是我參考網路上MyGui3動態載入的文章,並參考TrueType2的範例(網路上有蠻多介紹這篇的文章)。
在實現功能時,example2的範例我算是全部搬入,只是套入MyGui的文字顯示介面。
實作上先宣告一個固定大小的材質,然後將字描繪在材質上,在取得字型時,取得字在材質上的範圍。
由於TrueType2的範例上,已經實作了直接描邊的文字,所以不需要在繪字時上下左右移動,中間再疊上一個字,這樣描出來的字邊不太好看,而且中間字的透明部份會壓在外框的字上,顯示不如直接用範例漂亮。
如果需要不描邊的中文字,網路上也可以找到相關的文章,使用上更是簡單,也有完整的範例。
下面的範例是使用微軟正黑體
使用方式:
(1)在MyGUI_Fonts.xml新增一個新的資源,我設定的如下
FontManager::initialise()
(3)編輯介面時設定FontName為OLMSJHFont.17
已知問題:
程式實作時,當材質已滿時,會造成繪字無法顯示,目前並無實作這部份
分享我實作的程式,無詳細測試過是否有問題,歡迎下載指教:
於是我參考網路上MyGui3動態載入的文章,並參考TrueType2的範例(網路上有蠻多介紹這篇的文章)。
在實現功能時,example2的範例我算是全部搬入,只是套入MyGui的文字顯示介面。
實作上先宣告一個固定大小的材質,然後將字描繪在材質上,在取得字型時,取得字在材質上的範圍。
由於TrueType2的範例上,已經實作了直接描邊的文字,所以不需要在繪字時上下左右移動,中間再疊上一個字,這樣描出來的字邊不太好看,而且中間字的透明部份會壓在外框的字上,顯示不如直接用範例漂亮。
如果需要不描邊的中文字,網路上也可以找到相關的文章,使用上更是簡單,也有完整的範例。
下面的範例是使用微軟正黑體
使用方式:
(1)在MyGUI_Fonts.xml新增一個新的資源,我設定的如下
<Resource type="ResourceDynOLTrueTypeFont" name="OLMSJHFont.17">(2)在MyGUI_FontManager.cpp註冊ResourceDynOLTrueTypeFont
<Property key="Source" value="msjh.ttf"/>
<Property key="Size" value="36"/>
<Property key="Antialias" value="false"/>
<Property key="SpaceWidth" value="4"/>
<Property key="TabWidth" value="8"/>
<Property key="CursorWidth" value="2"/>
<Property key="Distance" value="6"/>
<Property key="OffsetHeight" value="0"/>
<Property key="OutlineColor" value="#000000"/> <!-- 外框文字 -->
<Property key="FontColor" value="#FFFFFF"/> <!-- 文字顏色 –->
<Property key="OutlineWidth" value="2"/> <!-- 描邊的寬度 -->
</Resource>
FontManager::initialise()
(3)編輯介面時設定FontName為OLMSJHFont.17
已知問題:
程式實作時,當材質已滿時,會造成繪字無法顯示,目前並無實作這部份
分享我實作的程式,無詳細測試過是否有問題,歡迎下載指教:
沒有留言:
張貼留言