让irrlicht 支持中文

看了官方引擎显示文字的方法居然是影射位图。。。。实在悲剧,开发者居然没考虑其他语言的问题,因为很多语言根本不由小量的字母组成,就算硬用中文字影射的方法,这个文件不知道会有多大。再就是在渲染环境里我们也没可能让美工来打字吧?再退一步好了,如果要设置字体大小这样的设定,影射根本不实际。

 

无奈下在官方的找有无方法弥补这个问题,发现有个日本的网友zgock做了个类,这个类是使用freetype达到我们文字显示的要求。http://www.zgock-lab.net/irrlicht/

 

下边是如何支持中文:(我的引擎版本是:irrlicht-1.7.2,IDE是:VS2008)

1.IDE--工具--属性vc++目录,包含文件,添加freetype的include目录,库文件添加freetype的objs目录

2.复制项目需求文件去项目里
3.在解决方案里添加这两个文件(添加现有项)
4.在项目属性--链接器--输入--附加依赖项--追加freetype244MT_D.lib Irrlicht.lib
5.若出现lib警告,可以在项目属性--链接器--输入--忽略特定库--追加libcmtd.lib
6.使用方法如下:

 

#include "CGUITTFont.h"

//设置字体,最后一次参数为字体大小(如果字体文件不存在,程序将会终止)
CGUITTFont* font = gui::CGUITTFont::createTTFont(env, "c:/windows/fonts/simsun.ttc", 12);
if (font) skin->setFont(font);

//现在菜单支持中文了
env->addButton(rect<s32>(10,240,110,240 + 32), 0, GUI_ID_QUIT_BUTTON,
               L"退出", L"终止程序");

 

这个东西折腾了我好多时间,希望官方以后加上这个多语言支持吧。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值