游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4032|回复: 9

irrlicht-1.2中文输入显示源码.

[复制链接]

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2007-1-18 18:16:00 | 显示全部楼层 |阅读模式
昨天刚开始玩irrlicht,下了个1.2版,发现不能显示中文和中文输入.
折腾了一个中午,搜了些前辈们留下的文章,照猫画虎,总算搞定了.
我把我修改了的文件打包上传到附件里了.
直接解压覆盖irrlicht-1.2安装目录就可以编译.
编译前先下载编译FreeType,并设置好头文件和库文件的包含路径
我下的是FT是2.3版的.

唯一要说明下的是,在IGUIEnvironment里添加了个接口
virtual IGUIFont* getTTFont(const c8* filename, int FontSize=14, bool AntiAlias = true) = 0;
具体实现代码看附件.
我在修改的地方都保留了源代码.并有makala注释.

测试代码:
在UserInterface 例子里,把
//IGUIFont* font = env->getFont("../../media/fonthaettenschweiler.bmp");
改成下面的就可以了
IGUIFont* font = env->getTTFont("c:\\windows\\fonts\\SIMLI.TTF", 20, true);
还有如果想换字体的画,把字体文件换一下.我用的是SIMLT.TTF是从windows下随便找的,可能是隶书字体吧,搞不清楚,反正是中文.


吼吼,坛子里tkggdxv的帖子看得我好辛苦,照着文章修改代码看得眼睛都绿了.还好,拷贝了不少好东西出来.
还有个问题,输入框里米有光标显示,谁帮我下.
好了,不说了回家,晚上开始从第一个 例子学起.

sf_2007118181534.rar

23.55 KB, 下载次数:

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2007-1-18 18:19:00 | 显示全部楼层

Re: irrlicht-1.2中文输入显示源码.

我的网络可能不是很好,下载FreeType花了好长时间.
顺便也传上来吧,免得哪位老兄下得慢着急.瓦咔咔. [em3] [em3]

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2007-1-18 18:20:00 | 显示全部楼层

Re: irrlicht-1.2中文输入显示源码.

吼吼,文件大小有限制啊,传不上来.
还是到sourceforge上去down FreeType吧.

31

主题

278

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2007-1-19 21:26:00 | 显示全部楼层

Re:irrlicht-1.2中文输入显示源码.

irrlicht官网我上不去,有条件的同学可以去看看MagicLib,不知道作者放了最新的库没有

31

主题

278

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2007-1-19 21:28:00 | 显示全部楼层

Re:irrlicht-1.2中文输入显示源码.

期待更多朋友加入中国的Irrlicht讨论群,呵呵,4556123,不是我建的

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2007-1-22 12:41:00 | 显示全部楼层

Re:irrlicht-1.2中文输入显示源码.

楼主,我想看看效果,功能怎么样,能满足一般游戏的需求吗

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2007-1-22 19:30:00 | 显示全部楼层

Re: irrlicht-1.2中文输入显示源码.

我刚开始研究irr.呵呵.
这是DEMO里的例子,看看是不是你想看的东西.
sf_2007122192942.jpg

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2007-1-24 17:38:00 | 显示全部楼层

Re: irrlicht-1.2中文输入显示源码.

吼吼,搞定光标.

3

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2007-1-24 18:17:00 | 显示全部楼层

Re:irrlicht-1.2中文输入显示源码.

找到光标不显示的问题了.
原来是光标位置太低,当字体稍微大一点的时候被输入框挡住了.
把下划线光标改成竖线光标了.就是上下错几个象素也能见.

修改位置:CGUIEditBox.cpp draw Line:525
#ifdef TEST_MODS
                        core::dimension2d<s32> a_dimension2d = font->getDimension(L"a");
                        rct.UpperLeftCorner.X -= a_dimension2d.Width / 2;

                        font->draw(L"|", rct,
                                OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
                                false, true, &AbsoluteClippingRect);
#else
                        font->draw(L"_", rct,
                                OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
                                false, true, &AbsoluteClippingRect);
#endif

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2007-1-25 11:03:00 | 显示全部楼层

Re:irrlicht-1.2中文输入显示源码.

严重支持!!挺!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表