OGRE 1.4.1 显示中文解决

OGRE 1.4.1版本CEGUI中文显示解决----------李赛威总结献给那些还没实现的朋友们  
有问题加我QQ 33635392,刚学习OGRE,有问题大家一块解决

1. 从WINDOWS\Fonts里边找中文字体复制到Media\fonts 例simsun.ttc 宋体  simhei.ttf黑体
2. Media\gui里添加XX.font 
 例simsun.font
<?xml version="1.0" ?> <Font Name="simsun" Filename="simsun.ttc" Type="FreeType" Size="12" 

NativeHorzRes="800" NativeVertRes="600" AutoScaled="true"/>
3.Media\guiTaharezLookSkin.scheme里添加<Font Name="simsun" Filename="simsun.font" />
4.  .layout文件里  
<Window Type="TaharezLook/Button" Name="Demo">
    <Property Name="UnifiedPosition" Value="{{0.5,0},{0.5,0}}" />

    <Property Name="UnifiedSize" Value="{{0.5,0},{0.5,0}}" />      

    <Property Name="Text" Value="中文" />
</Window>
5.  程序里void createScene(void)里
        // setup GUI system
        mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, 
        Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
        mGUISystem = new CEGUI::System(mGUIRenderer);
        CEGUI::Logger::getSingleton().setLoggingLevel(CEGUI::Informative);
        // load scheme and set up defaults
        CEGUI::SchemeManager::getSingleton().loadScheme(
                (CEGUI::utf8*)"TaharezLookSkin.scheme");
        mGUISystem->setDefaultMouseCursor(
                (CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");
        mGUISystem->setDefaultFont((CEGUI::utf8*)"simsun");//这里改成刚才添加的字体
        CEGUI::Window* sheet = 
            CEGUI::WindowManager::getSingleton().loadWindowLayout(
                (CEGUI::utf8*)"ogregui.layout");
在用CEGUILayoutEditor的时候可暂时用英文,而在导入后可用代码改变它,示例如下:
CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"Root/AdjustWindow")->setText((CEGUI::utf8*)Ogre::UTFString(L"中文").asUTF8_c_str());

测试了一下,得到如下的效果









只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


posts - 15, comments - 2, trackbacks - 0, articles - 29

Copyright © 美洲豹