研究CEGUI首先想解决中文显示问题,我在网上找了很多关于中文现实的问题,结果发现只对CEGUI的FontDemo例子有效果,其他的例子都不行,后来发现原来是源代码文件的编码格式问题,原来只有FontDemo的源代码文件Unicode(utf-8 无签名)格式,其他都不是此格式,我用vs2003把其他源代码文件转为Unicode(utf-8 无签名)格式,就可以正常显示中文了。
以CEGUI自带的最简单的例子FirstWindow为例,先将Sample_FirstWindow.cpp转为Unicode(utf-8 无签名)格式保存。
将系统文件夹的黑体字字库文件simhei.ttf拷贝到CEGUI-0.7.1\datafiles\fonts目录里,然后在FirstWindowSample::initialiseSample()
函数中添加以下代码:
FontManager::getSingleton().createFreeTypeFont("DefaultFont", 10/*pt*/, true, "simhei.ttf");
// 设为默认字体
System::getSingleton().setDefaultFont("DefaultFont");
然后再在同一个函数内将wnd->setText("Hello World!");
改为:
wnd->setText((CEGUI::utf8*)"大家好!Hello World!");记住一定要有CEGUI::utf8*指针。
编译运行即可。