CEGUI顯示中文

2021-05-22 07:34:34 字數 953 閱讀 2100

最近在學習cegui,想在它裡面顯示中文。

在網上找了很多資料,發現這篇最好用。

在使用cegui中,一直沒發現不能直接顯示中文,後來在網上偶然看到,才發現這個問題!然後在網上google了半天,自己解決了這個問題。

1.找到乙個中文字型,以微軟黑體為例:找到c:/windows/fonts目錄下的"simhei"檔案,拷貝到ogre字型目錄(如d:/ogre/samples/media/fonts)下。

2.d:/ogre/samples/media/gui目錄下建立乙個名為"simhei-12.font"檔案,用記事本開啟,新增如下內容:<?xml version="1.0" ?>(可直接複製gui目錄中"bluehighway-12.font"裡面的內容,再改font name 和filename)。

3.找到ogre程式中使用的scheme檔案(如"taharezlookskin.scheme"),用記事本開啟,在開關找到字型標識字段(如""),修改或新增相同的內容""。 font name必須和"simhei-12.font"檔案中的font name相同,標識使用的字型名。

4.在ogre程式中createscene函式中使用字型。

如:mceguisystem->setdefaultfont((cegui::utf8*)"simhei-12");  

在需要顯示中文時字元可以使用從寬字元轉換成多位元組:

std::wstring aa = l"退出";  //字串可為多語言結合(如"adb123你好!")

char buffer[128] = "";

widechartomultibyte(cp_utf8,0,aa.c_str(),aa.size(),buffer,sizeof(buffer),0,0);

quit->settext((cegui::utf8*)buffer);        //設定按鈕"quit"上顯示中文"退出"

我的效果圖:

CEGUI中文顯示提速

在做遊任務顯示中文的時候,如果任務中有太多的中文,ui的顯示超級的慢。這個問題是需要結局的,遂超找資料,看到了這位仁兄的寫的文件,覺得對我這樣的新手還是挺有幫助的,估計自己找原因再去寫 的話,也得花上一兩天的時間。有資料幫助,兩小時搞定,病對其中存在的一些小問題根據我的需要做了相應的修改。這位仁兄的...

CEGUI中文顯示提速

在做遊任務顯示中文的時候,如果任務中有太多的中文,ui的顯示超級的慢。這個問題是需要結局的,遂超找資料,看到了這位仁兄的寫的文件,覺得對我這樣的新手還是挺有幫助的,估計自己找原因再去寫 的話,也得花上一兩天的時間。有資料幫助,兩小時搞定,病對其中存在的一些小問題根據我的需要做了相應的修改。這位仁兄的...

CEGUI中文載入優化

cegui中文如何顯示這個就不說了,改下字型就ok了。對於中文載入的優化,網上最流行的說法是用一張或二張紋理儲存,當新的漢字沒有在紋理上的時候,清空紋理重新新增。對於這種方法如果漢字使用率少的話還不錯,但是如果對於不同漢字出現頻率較高的話,那麼這種方法,會出現介面一卡一卡的現象,那就是臨時清空重繪紋...