最近在學習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了。對於中文載入的優化,網上最流行的說法是用一張或二張紋理儲存,當新的漢字沒有在紋理上的時候,清空紋理重新新增。對於這種方法如果漢字使用率少的話還不錯,但是如果對於不同漢字出現頻率較高的話,那麼這種方法,會出現介面一卡一卡的現象,那就是臨時清空重繪紋...