游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2674|回复: 5

中文显示和写入问题

[复制链接]

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-9-14 09:10:00 | 显示全部楼层 |阅读模式
刚用CEGUI不久,搞了一天也没有吧中文显示出来.
帮帮忙,请告方法,或者吧免费打工仔的帖再帖出来看看,
再或者只要有好方法,写下,
我用的CEGUI-SDK-0.5.0b [em3] [em7]

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-9-16 14:33:00 | 显示全部楼层

Re:中文显示和写入问题


CEGUI 的开发者比较变态。
实现了utf8 和utf32 , 没有实现utf16.
在vc中, 字符串加 L 前缀就是utf16, 也就是 L"hello world!";

不过也许一般人不知道,Ogre对unicode支持很友好,提供了一个强大了 UTFString 类。
也就是,CEGUI::xx::setText(), 接受一个utf8* 字符串,可以先通过 UTFString ,然后再转换成 utf8*.
例子: setText( (GEGUI::utf8*) Ogre::UTFString( L"中文" ).toUtf8_str() )
类似这样,不过函数记不清楚了。

这样完成了编码工作,但是要设置好字体文件,才可以显示的。
先拷贝中文的字体文件放到ogre能访问的目录。
然后仿照其他.font文件写一个.font文件。
最后还要修改一下.scheme 文件,增加一个 <font />。
这些都很简单,参照已经有的修改一下就行。

至于写入,我还在研究当中~

4

主题

44

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2007-9-17 09:04:00 | 显示全部楼层

Re:中文显示和写入问题

UTF-8是Narrow-Char Encoding的次世代标准,而UTF-32是Unix下的Unicode标准,优先实现这两个我觉得没啥问题撒。
比较头痛的是,Truetype字体的实时绘制效率实在不敢恭维,而预先缓冲的话会用掉不少的RAM(四五十MB以上)。

知道仙剑4用了CEGUI之后还以为会有什么完美解决方案。
但当看到仙剑4一启动就吃掉了二百多MB内存时,我彻底寒了……|||

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-9-17 09:30:00 | 显示全部楼层

Re: 中文显示和写入问题

感谢上面2位拉.
老外写的,难免不理解中国国情.
期待国人自己的优秀免费引擎 [em13]

11

主题

190

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2007-9-17 13:37:00 | 显示全部楼层

Re:中文显示和写入问题

没那么恐怖,《天龙八部》也是使用的CEGUI显示汉字,在显示上FreeType的效率绝对没问题,但CEGUI在设计上确实没有考虑中文显示,需要改动很多东西,比如纹理调度,汉字排版等等,应用到游戏里还要考虑文字颜色,聊天表情,游戏物品信息传输(就是鼠标能点中聊天内容中一个物品)等,至于输入,参考DXUT响应IME消息就行了,不算复杂。
还是Linus最近的一句话经典,“设计是最重要的,技术都是末节”

4

主题

44

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2007-9-17 23:27:00 | 显示全部楼层

Re:中文显示和写入问题

CEGUI按页读入字模,如果不做预读取会很可怕,绘制十几个缓冲里没有的字就可以卡上一两秒。
但如果用预读取的方式缓冲了字模,那么一个字体大概会额外消耗几十MB的内存。

嘛,我想天龙八部和仙剑4应该都是选择了预读取吧。把整个字体预读了也不用怕什么缓冲外文字消息。更何况我们组是业余做单机RPG的= =

如果真的这点内存无所谓,那就预读取吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-21 22:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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