QQ1群 :7155339(满)
QQ2群 :35446718
QQ3群 :19696175(满)
游戏联盟


TD之家
    最新帖子    短信服务   
火人游戏论坛≡Asphyre专区≡Asphyre资源发布基于系统字体的Asphyre410中文GUI发布!
    
 
基于系统字体的Asphyre410中文GUI发布!
发起人:火人  回复数:17  浏览数:12808  最后更新:2015-10-25 10:52:48 by anyio

选择查看 搜索更多相关主题  帖子排序:
2007-6-29 14:22:12
火人





高级会员

角  色:管理员
发 帖 数:604
经 验 值:1241
注册时间:2007-5-29
基于系统字体的Asphyre410中文GUI发布!

ChnGUI410.rar


---------------以下为2007-7-5之前内容---------------------------------------------------------------------------------------------------------------

火人曾经做了一个Asphyre310的中文GUI,目前Asphyre410的GUI仍不支持中文,论坛中高手众多,希望有兴趣者参与此项目
项目内容:
1、使GuiForms、GuiBtton等GUI元素能显示中文
2、使GuiEdit能支持中文输入
3、全屏下中文输入法方案
4、GUI编辑器

参考: Asphyre310GUI完全中文支持版本

------------------------------------------------------------------------------------------------------------------------------
 新乞丐王子已发表基于贴图的中文解决方案:Asphyre 410 GUI 简单支持中文

------------------------------------------------------------------------------------------------------------------------------
      为便于更多人参与,将Asphyre中字体输出的原理作下简要说明(欢迎指正):
      Asphyre的字体输出实际上就是图片输出,先用Asphyre自带的FontTool工具将所有单字(目前只有英文字)加上字体效果(阴影、描边等)输出为一张图片,理论上这个图片可以为BMP、PNG、JPG等任何格式,但为了字体好看且输出更快,最好是针对DX优化的DDS图片格式,微软的DX9c SDK中带了将PNG等格式图片转换为DDS格式的工具(\Utilities\Bin\x86\DxTex.exe)
     接下来的事就比较简单了,程序中逐个取出将要输出的string中的字符,根据其ASCII码找到字符所在的字体图片的位置,将它们“画”在屏幕上就是字体输出了,字体图片的其它信息如字体大小、间距、ASC码所对应的字符长宽(不是所有字符都一样大小的)等,在Asphyre4中是用XML文件描述的,大家可以从例子里看看它的描述方法

所以,要想Asphyre4输出中文,需要作如下努力

1、生成中文字体图片,创建描述中文字体信息的XML描述规范
2、因中文字是双字节,因此要将输出的string类型改为widestring类型,使之支持unicode编码,当然就要修改程序中关于字符查找和计算字串长度的相关代码(大部分都在AsphyreFonts.pas文件中)
3、中文输入也有同样问题,键盘码也是双字节,主要修改GuiEdit.pas等文件,如果不修改好,就存在光标定位和乱码的问题

还有一种方法就是不用字体图片,改用DX的ID3DXFont接口使用系统字体实现,Asphyre310的中文GUI就是利用此方法,理论上会牺牲渲染效率。

至于GUI编辑器,实际上跟中文输出没有很大的关系,主要是提供一个平台方便程序员设计与在程序中调用GUI元素。希望有兴趣的朋友踊跃尝试。

 

 

[此帖子已被 火人 在 2007-7-1 0:08:20 编辑过]

[此帖子已被 火人 在 2007-7-4 3:44:54 编辑过]

[此帖子已被 火人 在 2007-7-6 14:37:20 编辑过]

如果都开源,就没有微软;如果不开源,就没有我
2007-6-29 15:33:54
etamity





新成员

角  色:注册用户
发 帖 数:14
经 验 值:48
注册时间:2007-6-3

我第一个举手脚支持~~ 

加油 !

2007-6-29 15:34:18
etamity





新成员

角  色:注册用户
发 帖 数:14
经 验 值:48
注册时间:2007-6-3

我第一个举手脚支持!!

加油啊

2007-6-30 14:24:53
xunmeng





中级会员

角  色:版主
发 帖 数:207
经 验 值:407
注册时间:2007-5-29

Gui编辑器 确实是个好东西。。。 很心动

如果有能力 我也想尝试个

2007-7-1 1:04:37
火人





高级会员

角  色:管理员
发 帖 数:604
经 验 值:1241
注册时间:2007-5-29
顶楼增加“Asphyre中字体输出的原理”
如果都开源,就没有微软;如果不开源,就没有我
2007-7-4 8:31:01
fhx





新成员

角  色:注册用户
发 帖 数:37
经 验 值:76
注册时间:2007-6-7

参考: Asphyre310GUI完全中文支持版本

您没有权限阅读帖子

2007-7-4 11:16:03
仔仔





新成员

角  色:版主
发 帖 数:1
经 验 值:2
注册时间:2007-6-1
fhx:

参考: Asphyre310GUI完全中文支持版本

您没有权限阅读帖子


登录后才能阅读
2007-7-5 3:17:56
火人





高级会员

角  色:管理员
发 帖 数:604
经 验 值:1241
注册时间:2007-5-29

尚未解决的问题:
1、GUI编辑器
2、与新乞丐王子发表的基于贴图的中文方案合并
3、新的GUI元素,如radio按钮、List列表、滚动条、下拉框、进度条等
4、guiEDIT还不能复制(可粘贴)
5、dragdrop的实现

如果都开源,就没有微软;如果不开源,就没有我
2007-7-5 10:33:22
xunmeng





中级会员

角  色:版主
发 帖 数:207
经 验 值:407
注册时间:2007-5-29

还是不太喜欢 使用 xml 来设定 gui界面的方式 借鉴火人的中文输出方式 想尝试自己

修改下

2007-7-5 10:58:35
新乞丐王子





新成员

角  色:版主
发 帖 数:3
经 验 值:8
注册时间:2007-5-29

我又发现一个有趣现象!

在右面的文本框里面输入文字的个数和帧数成反比!

也就是说我把右面文本框中的文字清空,我这里只有400多帧的速度!

而如果我把右面文本框中写满了1234567890则能达到900帧的速度!

稍稍有些不可思议啊!

我爱游戏,我爱编程!
2007-7-5 12:01:43
火人





高级会员

角  色:管理员
发 帖 数:604
经 验 值:1241
注册时间:2007-5-29
我这里正好相反,右面的文本框字越多,FPS越小
如果都开源,就没有微软;如果不开源,就没有我
2007-7-6 23:30:47
xunmeng





中级会员

角  色:版主
发 帖 数:207
经 验 值:407
注册时间:2007-5-29
我也是 不过 fps 变化很小 可能是显示的界面比较小的原因
2008-1-15 21:27:17
leuher





新成员

角  色:注册用户
发 帖 数:2
经 验 值:4
注册时间:2008-1-15
关注,支持
2008-9-23 14:29:33
jasonke





新成员

角  色:注册用户
发 帖 数:2
经 验 值:4
注册时间:2008-8-12
现在进展怎么样了
2010-8-4 13:22:36
ann123





新成员

角  色:注册用户
发 帖 数:10
经 验 值:4
注册时间:2010-5-31
With a wow power leveling private luxury wow power leveling property in St. Tropez, you wow power leveling can enjoy all the highlights of St. Tropez, without wow power leveling sacrificing on peace aion power level and quiet. For a aion powerleveling family, this can buy wow gold mean a good aion kinah deal of quality time spent together, before the adults go club-hopping; for those mixing business and pleasure, it can aion power level translate into a peaceful morning spent in a private mini-golf course attached with your very own chateau and a great place to host business dinners without having to worry about privacy and security. For celebrities, a private luxury estate in St. Tropez can mean much needed time away from the paparazzi and cameras and at the same time, the freedom wow gold uk and privacy to host as many parties and galas as they wish. If you intend to spend time in the Riviera's glamour capital, a St. Tropez luxury property helps you do it effortlessly.-

火人工作室
  • 联系我们 - 火人工作室 - 论坛存档 - 返回顶部
    Powered by BBSXP 2008 MSSQL © 1998-2017 Yuzi.Net
    Processed in 0.67 second(s)
    湘ICP备05008144号